API staat voor Application Programming Interface. Je hebt deze term vast wel eens horen vallen, zeker als je je bezighoud met online systemen. Maar wat is een API nou precies en hoe werkt het?

Hoe werkt een API?

Een API is een software-interface die het mogelijk maakt dat twee applicaties gegevens met elkaar kunnen uitwisselen.

Er wordt vaak een vergelijking gemaakt met een restaurant: stel dat je in een restaurant zit en je wilt gaan bestellen. Je bekijkt de menukaart en maakt je keuze. De ober komt langs en je geeft je bestelling door. De ober ontvangt deze bestelling en geeft dit door aan de keuken.

In de keuken wordt je bestelling bereid, je weet niet precies wat hier gebeurt, maar je weet wel dat je je bestelling krijgt.

Dit is in essentie hoe een API ook werkt. Applicatie A doet een verzoek (request) naar applicatie B. In dit verzoek wordt aangegeven wat applicatie A verwacht.
Applicatie B ontvangt dit verzoek en verwerkt het. Als applicatie B het verzoek heeft verwerkt stuurt het een antwoord (response) naar applicatie A.
Applicatie A weet niet precies hoe applicatie B werkt en dat hoeft ook niet, als applicatie A maar een antwoord krijgt. Vervolgens kan applicatie A het antwoord van applicatie B gebruiken.

Voorbeeld van een API

Stel ik heb een webshop waar ik regenjassen verkoop. Ik wil graag de weersvoorspelling van de komende dagen laten zien op de website om gebruikers aan te moedigen snel een bestelling te plaatsen. Hiervoor kan ik bijvoorbeeld de applicatie van de KNMI gebruiken. Ik doe vanuit mijn webshop periodiek een verzoek waarin ik specificeer dat ik de weersverwachting vanaf vandaag t/m volgende week wil weten. Als de applicatie van de KNMI mijn verzoek heeft ontvangen kan deze dit verzoek verwerken. Vervolgens stuurt de KNMI mijn webshop een antwoord met de gegevens die ik heb opgevraagd. In dit geval van alle dagen van de komende week de weersverwachting. Deze weersverwachting kan ik vervolgens gebruiken om een actuele weersverwachting van de komende week tonen aan de gebruikers van mijn website.