01. intro API
API staat voor Application Programming Interface. Het is, zoals de naam al zegt, een interface waarmee mensen - ontwikkelaars, gebruikers, consumenten - kunnen communiceren met gegevens.
Last updated
API staat voor Application Programming Interface. Het is, zoals de naam al zegt, een interface waarmee mensen - ontwikkelaars, gebruikers, consumenten - kunnen communiceren met gegevens.
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 (Application Programming Interface) 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.
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!
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.
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).
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 geretourneerd door een server. Voor een GET request zal dit dus de data zijn die de API retourneert.
JSON staat voor JavaScript Object Notation en is in feite een manier om gegevens weer te geven die op JavaScript-objecten lijken. In web API's wordt er voornamelijk JSON gebruikt om gegevens door te sluizen van, en naar de server.
Indien je als webontwikkelaar data opvraagt met behulp van een API zal je een response met de gevraagde data in JSON-formaat terug krijgen. Laten we eens kijken naar een heel typisch JSON-object voor een restaurant, dat er ongeveer zo uit kan zien:
Dit is vrij eenvoudig te lezen - onze gegevens worden opgeslagen als key/value-paren. Dit betekent dat we de key aan de linkerkant en de waarde aan de rechterkant kunnen zien. De key blijft hetzelfde voor elk Restaurant-object, maar de waarde zal anders zijn. Een ander restaurant zou een andere waarde voor naam, adres, postcode, etc. hebben, maar de keys zouden hetzelfde zijn - het zou altijd een naam, adres, postcode, telefoon en e-mail hebben.
JSON is alomtegenwoordig in moderne webapplicaties. Het is leesbaar, het is lichtgewicht en het werkt super goed met applicaties die zijn geschreven in JavaScript. Maar het is ook relatief eenvoudig om applicaties die in andere talen zijn geschreven te krijgen om deze te lezen en ook te genereren - inclusief Java. Dit betekent dat een API die JSON retourneert, toegankelijk is voor een applicatie die is geschreven in Java, Ruby, Python, JS, PHP en nog veel meer. Dit maakt een API schaalbaar en platform onafhankelijk!
Meer informatie omtrent JSON
De GET methode wordt gebruikt om informatie op te halen - en niet om deze te wijzigen. Een GET request verandert de status van een bron niet. Bovendien moeten GET-API's idempotent zijn, wat betekent dat het maken van meerdere identieke verzoeken elke keer hetzelfde resultaat moet opleveren totdat een andere API (POST of PUT) de status van de bron op de server heeft gewijzigd.
bij het uitvoeren van een GET request naar een publieke API zal deze een HTTP-responscode 200 (OK) retourneren - samen met de data, die meestal in JSON-formaat geschreven is (vanwege hun platform onafhankelijke aard).
Als de bron NIET op de server wordt gevonden, zal deze een HTTP-antwoordcode 404 (NIET GEVONDEN) retourneren.
Evenzo, als er wordt vastgesteld dat de GET request niet correct is opgebouwd, retourneert de server een HTTP-antwoordcode 400 (BAD REQUEST).
Een publieke API is een API waarvan de endpoints niet beveiligd zijn. M.a.w. er worden geen inloggegevens gestuurd bij elke request. Bij het sturen van een GET request naar een beveiligde API zonder inloggegevens, zal de server een HTTP-antwoordcode 401 (NIET GEAUTORISEERD) retourneren.
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.
Let op : De structuur van een JSON object lijkt heel hard op dat van een Javascript object!