Wat is een API? De koppeling tussen softwaresystemen uitgelegd
Een Application Programming Interface (API) laat twee softwaresystemen met elkaar communiceren via vaste, afgesproken signalen. Van weerapps tot clouddiensten: zonder API's werkt moderne software niet.
Kernpunten
- Een API is een verbinding tussen computers of softwareprogramma's, die hen in staat stelt via afgesproken signalen met elkaar te communiceren.
- Een API verbergt de interne werking van een systeem en stelt alleen de delen bloot die een programmeur nodig heeft.
- De term 'API' verwijst tegenwoordig vooral naar web-API's, die communicatie tussen computers via het internet mogelijk maken.
- De oorsprong van het API-concept gaat terug tot de jaren veertig, al dook de term zelf pas op in de jaren zestig en zeventig.
Wat is een API?
Een Application Programming Interface (API) is een verbinding tussen computers of softwareprogramma's. Het is een type software-interface die een dienst aanbiedt aan andere stukken software. Een API is — anders dan een gebruikersinterface — niet bedoeld voor eindgebruikers, maar voor machine-naar-machine-communicatie: het is het 'onderwater'-deel van een softwaresysteem.
Een API opent een softwaresysteem voor interacties van buitenaf. Via onderling overeengekomen signalen kunnen twee systemen over een grens — een interface — communiceren. De aanroepen die een API opbouwen, worden ook wel subroutines, methoden, verzoeken of endpoints genoemd.
Een belangrijk kenmerk van een goed ontworpen API is abstractie: het systeem verbergt interne details en stelt alleen de onderdelen bloot die een programmeur nodig heeft. Zo wordt programmeren eenvoudiger, en kunnen interne details later veranderen zonder dat de buitenkant hoeft mee te veranderen.
Software bouwen met API's wordt wel vergeleken met het in elkaar klikken van bouwblokken: afzonderlijke softwareservices of bibliotheken zijn als de blokken, en via hun API's kunnen ze worden samengevoegd tot een nieuw product. Dit samenvoegen heet integratie.
Een API wordt ook wel met een contract vergeleken: een overeenkomst tussen de aanbieder van de API en de ontwikkelaars die erop vertrouwen. Blijft de API stabiel, of verandert ze alleen op voorspelbare manieren, dan neemt het vertrouwen van ontwikkelaars toe.
Wat betekent dit voor de BeNeLux?
Begrijpen wat een API is en hoe de afspraken (specificaties) werken, is daarmee basiskennis voor iedereen die betrokken is bij digitale dienstverlening of softwareinkoop.
Gangbare vormen: van web-API's tot besturingssystemen
Hoewel de term API breed toepasbaar is — er bestaan ook API's voor programmeertalen, softwarebibliotheken, besturingssystemen en hardware — wordt hij in de praktijk het vaakst gebruikt voor web-API's. Dat zijn API's die communicatie tussen computers via het internet mogelijk maken. Ze vormen de ruggengraat van moderne clouddiensten en SaaS-toepassingen.
Een concreet voorbeeld uit de bron: stel, een weersensor biedt een API aan. Wordt er een bepaald bericht naar de sensor gestuurd (een API call), dan detecteert de sensor de actuele weersomstandigheden en stuurt een weerrapport terug (een API response). Een weerapp kan meerdere van zulke sensor-API's integreren om weerdata uit een heel gebied samen te stellen.
Specificatie versus implementatie
Rondom API's zijn twee begrippen belangrijk:
- API-specificatie: een document of standaard die beschrijft hoe een verbinding of interface gebouwd moet worden.
- API-implementatie: een computersysteem dat aan die specificatie voldoet en de API daadwerkelijk aanbiedt.
De term 'API' kan naar beide verwijzen. API-documentatie — uitleg over hoe een programmeur elke subroutine moet aanroepen — is een praktische verschijningsvorm van een API-specificatie.
Korte geschiedenis
Het concept achter de API is ouder dan de term zelf. Britse computerwetenschappers werkten al in de jaren veertig aan een modulaire softwarebibliotheek voor een vroege computer, inclusief een 'catalogus' met uitleg over elke subroutine — wat we nu een API-specificatie zouden noemen.
De term 'application program interface' (zonder -ing) dook voor het eerst op in een paper uit 1968, gepresenteerd op een conferentie, waar hij de interactie beschreef tussen een applicatie en de rest van een computersysteem. Het doel was toen al om programma's hardware-onafhankelijk te maken.
Ursprong werden API's alleen geassocieerd met programma's die direct voor eindgebruikers waren bedoeld (applicatieprogramma's). Tegenwoordig is de term breder: hij omvat ook hulpsoftware en zelfs hardware-interfaces.
Veelgestelde vragen
- Wat is het verschil tussen een API en een gebruikersinterface?
- Een gebruikersinterface verbindt een computer met een mens. Een API verbindt computers of softwareprogramma's met elkaar, en is niet bedoeld voor directe interactie door een eindgebruiker.
- Wat is een web-API?
- Een web-API is een API die communicatie tussen computers via het internet mogelijk maakt. De term 'API' wordt in de praktijk het vaakst in deze betekenis gebruikt.
- Wat is het verschil tussen een API-specificatie en een API-implementatie?
- Een API-specificatie is een document of standaard die beschrijft hoe een verbinding gebouwd moet worden. Een API-implementatie is een systeem dat aan die specificatie voldoet en de API daadwerkelijk aanbiedt.
- Waarom verbergt een API interne details?
- Een goed ontworpen API stelt alleen de onderdelen bloot die een programmeur nodig heeft en verbergt de rest. Dit vereenvoudigt het programmeren en zorgt ervoor dat interne wijzigingen van het systeem de buitenkant niet hoeven te beïnvloeden.
- Hoe oud is het concept van de API?
- Het concept gaat terug tot de jaren veertig, toen Britse computerwetenschappers werkten aan een modulaire softwarebibliotheek met een bijbehorende catalogus — wat nu een API-specificatie zou heten. De term zelf dook pas op in de jaren zestig en zeventig.