4: API's
Last updated
Last updated
API is de afkorting voor Application Programming Interface, een software-tussenpersoon waarmee twee applicaties met elkaar kunnen communiceren. Je kan een API zien als een medium waarmee de client, dit kan een browser zijn, en de server kunnen communiceren.
Een API is een reeks functies waarmee toepassingen toegang kunnen krijgen tot gegevens en kunnen communiceren met externe softwarecomponenten, besturingssystemen of microservices.
Met een API kan een ontwikkelaar een specifieke "call" of "request" doen om informatie te verzenden en/of te ontvangen. Deze communicatie wordt gedaan met behulp van een programmeertaal genaamd JSON. Het kan ook worden gebruikt om een gedefinieerde actie uit te voeren, zoals het bijwerken of verwijderen van gegevens.
een metafoor: geld afhalen bij een bank
Zie jezelf als een gebruiker, een bankbediende als een API en een bankmanager als het systeem waarmee je wilt communiceren. Voor geld van je rekening af te halen moet je bij het loket met de bankbediende (API) zijn. Je zegt: "Ik wil graag €1.000 van deze rekening". De bankbediende (API) gaat dan naar achteren, vertelt de bankmanager (het systeem) "Mr/Ms.X wilt graag €1.000", de bankmanager (het systeem) geeft de bankbediende (API) €1.000 die het uiteindelijk doorgeeft aan jou.
Een API helpt ontwikkelaars snel informatie aan consumenten te leveren en wordt in de wereld van vandaag dagelijks gebruikt. Van online winkelen, browsen in een social media-app of een game spelen op je smartphone. Elke keer dat je een pagina online bezoekt, heb je interactie met een of meerdere API's. Hier zijn enkele voorbeelden uit de praktijk van hoe je omgaat met API's en het misschien niet eens beseft!
opzoeken van hotels
Wanneer je naar een reissite gaat, kan deze worden gekoppeld aan 10 andere reissites om de beste deal voor je te vinden. Wanneer je gegevens invoert zoals Antwerpen, 2 nachten, 1 kamer, stuur je dit verzoek naar die 10 verschillende reissites. De API neemt je verzoek voor die specifieke locatie, datumbereik en kamer en pingt de 10 sites, die de gevonden deals terugsturen.
een Facebook-profiel opzoeken
Als je "John Smith" typt op Facebook, informeert de API de Facebook-servers dat je op zoek bent naar John Smith. Facebook stuurt je vervolgens een lijst met alle profielen die overeenkomen met die naam (met factoren zoals je nabijheid of gemeenschappelijke vrienden).
een nieuw restaurant vinden
Stel dat je naar een nieuwe stad reist. Je hebt net alles bij het hotel afgezet en besluit wat te gaan lunchen. Je pakt je smartphone, opent Google Maps, en zoekt restaurants in de buurt. Al snel zie je tientallen lokale restaurants direct buiten je hotel. Dankzij de **Google Maps API **krijg je gemakkelijk de openingstijden, beoordelingen en telefoonnummers te zien.
Elke keer dat je een applicatie zoals Facebook gebruikt, een bericht verzendt of het weer op je telefoon controleert, gebruik je een API.
Een API request bestaat uit verschillende componenten. Laten we deze afzonderlijk overlopen en bekijken hoe ze kunnen worden gebruikt om een request op te stellen.
Een API bestaat uit endpoints. A.d.h.v. deze endpoints kan je specificeren welke data je exact wilt ophalen van de server. Elk endpoint bestaat uit twee delen namelijk een URL en een pad. Laten we als voorbeeld de API van SWAPI bekijken. SWAPI is een API voor het ophalen en verwerken van Star Wars data.
De URL vormt de basis link van een API. Voor elke endpoint binnen een bepaalde API zal de URL hetzelfde zijn. De URL van SWAPI is https://swapi.dev/api/
Met het pad kan je specificeren welke data je juist wilt opvragen van een API. Het pad komt na de URL te staan. Neem als voorbeeld, https://swapi.dev/api/people, M.b.v. /people vertel je aan de API dat je alle personages van het Star Wars universum wilt opvragen. Het laatste deel na de URL, /people, vormt dus het pad van de endpoint.
een endpoint = URL + pad
Headers geven informatie aan de client en server. Veelvoorkomende voorbeelden van een header zijn authenticatie gegevens zoals een "Auth Token" of "Client ID". A.d.h.v deze inloggegevens kan je er voor zorgen dat je API beveiligd is en alleen data retourneert indien de gebruiker een correcte token of ID meestuurt. Een andere veelvoorkomende header is "Content Type", dat de server informeert over welk type inhoud wordt verzonden. Een veelgebruikt content type is bijvoorbeeld "application/json", wat de server laat weten dat we JSON-gegevens verzenden.
Methoden zijn de acties die worden ondernomen bij het verzenden van een verzoek. Een API bestaat uit vier basis verzoekmethoden:
GET - Ophalen van data (bv. ophalen van een geolocatie op Google Maps)
PUT - Bewerken en updaten van data (bv. bewerken van je naam op Instagram)
POST - Aanmaken van nieuwe data (bv. een online bestelling plaatsen bij je favoriete restaurant)
DELETE – Verwijderen van data (Een vriend verwijderen op Facebook)
Dit zijn één voor één API-methoden. Voor deze cursus zal je alleen data moeten kunnen opvragen m.b.v. de GET methode.
De verzoekgegevens, ook wel de "body" genoemd, is informatie die wordt verzonden naar of van een server. Voor een GET request zal dit dus de data zijn die de API terugstuurt.
Google Maps API: Met de Google Maps API kunnen ontwikkelaars Google Maps insluiten op webpagina's met behulp van een JavaScript- of Flash-interface. De Google Maps API is ontworpen om te werken op mobiele apparaten en desktopbrowsers.
YouTube API's: met de API's van YouTube kunnen ontwikkelaars YouTube-video's en -functionaliteit integreren in websites of applicaties. YouTube API's omvatten de YouTube Analytics API, YouTube Data API, YouTube Live Streaming API, YouTube Player API's en andere.
Twitter API's: Twitter biedt twee API's. Met de REST API hebben ontwikkelaars toegang tot kerngegevens van Twitter en met de zoek-API kunnen ontwikkelaars interactief werken met zoek- en trendgegevens van Twitter.
Amazon Product Advertising API: Amazon's Product Advertising API geeft ontwikkelaars toegang tot Amazon's productselectie- en ontdekkingsfunctionaliteit. Ontwikkelaars kunnen vervolgens advertenties van Amazon-producten opnemen om geld te verdienen met een website.