I den tidigare delen gick vi igenom teori över REST APIer. Nu ska vi använda Python och ett HTTP bibliotek för att prata med ett API på webben.
Förutsättningar för att göra labben:
- Python3.10 med “requests” biblioteket
- ett bibliotek består av färdiga moduler som underlättar utvecklingen för oss, läs mer här
- En IDE (eller textredigerare) att skriva vår kod i
- jag använder Visual Studio Code
Labb
I denna labb kommer vi att anropa ett Star Wars API (SWAPI)och hämta data om Luke Skywalker. Om vi kollar på dokumentationen ser vi att SWAPI är ett öppet API (kräver ingen autentisering) och att det har ett JSON schema på sina resurser.
Vi börjar koden med att importera “requests” biblioteket:
import requests
Eftersom att vi bara ska hämta data kommer vi att använda oss av HTTP metoden “GET”. För att göra detta kommer vi använda get() metoden ur “requests”, vi sätter svaret i en variabel kallad “response” och ser även till att tolka kroppen som JSON med json() metoden:
response = requests.get('https://swapi.dev/api/people/1/').json()
Vi avslutar vårt kodstycke med att skriva ut svaret lite snyggt i terminalen (genom att hämta värdet i utvalda nyckel-värde-par formaterat i en f-sträng):
print(f"Name: {response['name']}\nHeight: {response['height']} cm\nGender: {response['gender']}")
Vår lilla kod kommer då att se ut på följande vis:
import requests
response = requests.get('https://swapi.dev/api/people/1/').json()
print(f"Name: {response['name']}\nHeight: {response['height']} cm\nGender: {response['gender']}")
Jag har valt att spara koden som en egen fil och exekverar den enligt följande, med förväntad output:
rasmus@rasmus-lnx:~/dev/routeralle/restapi$ python3 luke.py
Name: Luke Skywalker
Height: 172 cm
Gender: male