4 enkla steg för att integrera mot ett RESTful API med hjälp av Python Requests

2021-09-01

Resting fox

I vårt vardaliga jobb som en digitalbyrå i Stockholm får behöver vi ofta integrera mot tredjeparts tjänster. Ofta är dessa RESTful API som har en fördefinerad struktur och tankesätt. Detta underlättar för oss som utvecklare. I denna artikel listar vi 6 frågor som du bör ställa innan du börjar bygga integrationer mot ett tredjeparts API.

Den enkla och tydliga syntaxen i python gör det till ett perfekt programmeringsspråk att använda för att integrera mot ett REST API. Och självklart finns det en python paket som man kan använda; Requests.

Kommunikationen med ett REST API sker genom att applikationen gör ett request och får tillbaka en response.

Request (anrop):

Endpoint: Den URL som anropet ska gå till. Precis som en URL är anknuten till en specifik hemsida är också en endpoint url anknuten till en specifik resurs i rest api:et.

Method: Definierar hur man interagerar med den specifika resursen som är allokerad på endpointen. De vanligaste metoderna som används inom REST api:n är:

  • GET - Hämta data

  • PUT/PATCH - Ersätta data

  • POST - Skapa data

  • DELETE - Ta bort data

Data/Payload: Om du använder en metod ovan som involverar ändring av data i ett REST api så behöver du inkludera data som ska skapas/ändras.

Headers: Innehåller annan data som är nödvändig för att kommunikationen med REST api:et ska fungera, t.ex. authensierings token, typ av retur innehåll (json etc), caching policy om det finns sådan.

Response (respons/svar):

Precis som i ett request så innehåller en response headers och eventuell data. Headers i response innehåller http status och annan nödvändig metadata medan data innehåller den efterfrågade informationen (om tillämpligt). Typen av datan kan skilja sig men oftast är det JSON om det är text.

Klient klassen

För att hålla vår kod konsekvent och enheltligt brukar vi avsluta namnet med Client. T.ex. om man integrera med Touchbase så kallar vi klassen TouchbaseClient. Det första vi ska göra är att ta reda på vilka fasta parametrar som krävs för att kommunicera med api:et. Dessa kan vara api-nycklar, bas urlen som alla endpoints ska börja med etc. I vårt exempel nedan skickar vi in dessa vid instansieringen av klassen.

Vi skapar klassen och __init__ funktionen:

python

class TouchbaseClient:

  def __init__(self, base_url, api_key, api_version):

	    self.base_url = base_url

			self.api_key = api_key

			self.api_version = api_version