02.a Thunder Client
Wat is een API?
API staat voor Application Programming Interface.
Application: Eender welk programma dat wilt communiceren met een ander programma
Programming: We laten de applicaties praten met elkaar door die communicatie te programmeren
Interface: de verzameling aan regels waar die communicatie zich aan moet houden.
In de meeste gevallen zal een API data beschikbaar stellen via een bepaalde url in een vooraf bepaald formaat. Een andere applicatie kan die data dan downloaden via die url, en dat vooraf bepaald formaat gebruiken om die data te 'lezen'.
Bijvoorbeeld:
De PokeApi is een API die allerlei data over pokémon beschikbaar stelt. Als je surft naar https://pokeapi.co/api/v2/pokemon/ditto, dan zie je daar allerlei data verschijnen over de pokémon genaamd "Ditto".
Toegegeven, deze data wordt niet op de meest leesbare manier getoond, maar met een beetje moeite zal je daar heel wat data in herkennen:
welke abilities de pokémon heeft
welke moves de pokémon standaard krijgt
in welke pokémon games de pokémon allemaal voorkomt
welke afbeeldingen er van beschikbaar zijn
...
Als je daarna surft naar https://pokeapi.co/api/v2/pokemon/pikachu, zal je exact dezelfde soort data te zien krijgen. Alleen zullen er nu andere abilities, moves, ... ingevuld zijn, want Pikachu is een heel andere pokémon dan Ditto.
Het feit dat Pikachu en Ditto dezelfde soort data gebruiken wilt zeggen dat ze dezelfde interface gebruiken.
PokéApi is dus een interface waarmee je kunt communiceren tussen het programma achter PokéApi en jouw eigen programma.
Wat is een Request?
Een request is een vraag die gesteld wordt aan een server. De response is het antwoord van de server op die vraag. Dat antwoord is altijd data, maar afhankelijk van de server zal die data in een ander formaat worden gegeven.
Bijvoorbeeld:
Als je een request verstuurt naar een gewone website (bv. de url van deze cursus), dan zal het antwoord HTML code bevatten.
Als je een request verstuurt naar een API (bv. https://pokeapi.co/api/v2/pokemon/pikachu) dan zal het antwoord JSON of XML code bevatten.
Als je een request verstuurt naar een pagina die niet bestaat, dan zal het antwoord een fout (ERROR) bevatten.
Er zijn verschillende request types (soorten vragen) die je kan stellen aan een server. De meest belangrijke zijn:
GET: een vraag die data opvraagt aan de server. Je kan parameters meegeven om die data te filteren.
POST: een vraag die data verstuurt naar de server.
PUT: een vraag die data wijzigt op de server.
DELETE: een vraag die data verwijdert op de server.
Niet alleen moet je gebruik maken van het juiste soort vraag, je moet de server ook zo programmeren dat die vraag verwerkt kan worden. Zo kan je niet zomaar een DELETE vraag versturen naar Google, en daarop verwachten dat heel Google verwijdert wordt. Er moet een pagina worden gemaakt waar code werd geprogrammeerd die de vraag kan begrijpen en uitvoeren.
Wat is Thunder Client?
Hoera! Je hebt een API gevonden die je wilt gebruiken, of misschien heb je er zelf één gemaakt. Je hebt echter nog geen applicatie (programma) gemaakt waarmee je die API data inleest en op een mooie manier presenteert aan het publiek.
Maar als je nog geen applicatie hebt, hoe ga je dan die API testen? Het antwoord: Thunder Client.
Thunder Client is een Visual Studio Code Extension waarmee je API data kunt ontvangen en versturen. Als je API niet goed werkt, dan zal Thunder Client je dat laten weten. Als jij de API niet goed gebruikt, zal Thunder Client dat ook laten weten.
APIs testen met Thunder Client
Wanneer je de Thunder Client Extension opent vanuit de VS Code SideBar (icoontje met een bliksemschicht), opent het startscherm zich vanuit de SideBar.
Daarna kan je klikken op de blauwe knop New Request
om een nieuwe vraag aan een API te stellen.
Bovenaan dit scherm kan je een URL invoeren.
Probeer maar eens! Vul de link naar https://pokeapi.co/api/v2/pokemon/pikachu in, klik op send
, en bekijk de Response
die je terugkrijgt.
Requests met Thunder Client
Bovenaan kan je dus een Request URL invoeren. Thunder Client zal naar die URL surfen, de data van die URL opvragen, en die data tonen in het Response
tabblad.
Links van de URL kan de Request Type worden aangepast. Standaard zal dit op GET ingesteld staan, maar er zijn veel verschillende soorten requests die verstuurd kunnen worden.
Last updated