Här är del 2 i vår serie "Projekt: Lär dig om API:er"!
Vi börjar med en snabb "recap" på förra lektionen där vi gick igenom:
- Vad ett API är
- Hur "GET" och "POST"-förfrågningar fungerar
Vi regisitrerade oss även på tjänsten "Edamam" och skapade en API-nyckel samt testade att göra en API-förfrågning.
Nu ska vi börja med att göra samma test-förfrågning till Edamams API, fast via Python.
- Vad ett API är
- Hur "GET" och "POST"-förfrågningar fungerar
Vi regisitrerade oss även på tjänsten "Edamam" och skapade en API-nyckel samt testade att göra en API-förfrågning.
Nu ska vi börja med att göra samma test-förfrågning till Edamams API, fast via Python.
Gör en API-förfrågning med Python
Installera modulen "requests"
Vi måste börja med att installera modulen "requests" till Python. Modulens slogan är "http for humans". Med detta menas förmodligen att modulen är otroligt användarvänlig och lättanvänd. Med tre rader kod kan vi importera modulen, göra en GET-förfrågning till en webbserver och skriva ut vad servern svarat med "print()".
Installera modulen med hjälp av PyCharm. Vet du inte hur du gör kan du klicka här för vår genomgång av det. Värt att notera är att många andra Python-moduler som på ett eller annat sätt kopplar upp sig mot internet använder sig av "requests", så du kan bara prova att skapa en ny Python-fil, skriva "import requests" och se om PyCharm varnar att modulen inte kan hittas. Alternativt kan du bara testa att köra koden ("import requests") och se om något fel uppstår. Om det gör det, så installera modulen.
Installera modulen med hjälp av PyCharm. Vet du inte hur du gör kan du klicka här för vår genomgång av det. Värt att notera är att många andra Python-moduler som på ett eller annat sätt kopplar upp sig mot internet använder sig av "requests", så du kan bara prova att skapa en ny Python-fil, skriva "import requests" och se om PyCharm varnar att modulen inte kan hittas. Alternativt kan du bara testa att köra koden ("import requests") och se om något fel uppstår. Om det gör det, så installera modulen.
Importera modulen till vår Python-kod
För att importera modulen använder vi oss av ett enkelt "import"-uttryck, som ser ut så här för modulen "requests":
Denna kod importerar modulen "requests" till din Python-kod:
Nu så kan vi börja använda modulen "requests" till att bl.a. skicka förfrågningar till Edamam´s server.
Gör en GET-förfrågning med Python
Vi har redan gått igenom hur du formatterar länken för förfrågningen till API:et. I Python kan du göra en GET-förfrågan med requests-modulen genom att använda funktionen requests.get(url). Byt ut "url" mot länken du testade i din webbläsare i förra lektionen för att nå API-et. Sedan vore du också spara själva utförandet av funktionen i en variabel. Det är också väldigt enkelt. Så här vore en kod som utför en GET-förfrågan till Edamam´s recept-API se ut (förutsatt att du byter ut länken nedan mot den länk du tidigare skapat):
Denna kod skickar en GET-förfrågan till Edamam´s recept-API:
Parametern q ovan är nödvändig för Edamam att få i varje förfrågning och innehåller det du vill söka efter i deras databas. I detta exempel är det ett recept på donuts som efterfrågas.
Kör koden. Efter ett tag vore programmet avslutas utan att säga något, men en GET-request till Edamam´s server vore ändå ha utförts. För att se vad servern har svarat i ett så kallat JSON-format, lägg bara till detta i slutet av koden ovan:
Denna kod skriver ut svaret från den API-förfrågan som gjordes i exemplet ovan:
Om du skulle få ett fel när du kör koden ovan (tillsammans med resten av koden såklart), så byt ut "request.json()" mot "request.text". Ett fel har förmodligen uppstått, men om du byter ut detta i koden kommer svaret från severn förmodligen ändå att printas ut, så att du kan se vad som är felet.
Om allt funkar så kan du nu gå vidare med att lära dig mer om det s.k. JSON-formatet och hur man kan använda det inom Python. Den informationen hittar du i nästa del!
Om allt funkar så kan du nu gå vidare med att lära dig mer om det s.k. JSON-formatet och hur man kan använda det inom Python. Den informationen hittar du i nästa del!