Wat is een API en hoe werkt die in de praktijk?

Auteur: Gepubliceerd

In het kort: een API is een programmeerinterface: een verzameling regels waarmee een programma gegevens of functies van een ander programma kan gebruiken. Zo kan een applicatie bijvoorbeeld een weersverwachting ophalen, een bestelling doorgeven aan een magazijnsysteem of een verzendlabel laten aanmaken. Een API bepaalt welke handelingen mogelijk zijn, hoe je ze aanroept en hoe je het resultaat interpreteert.

Hoe werkt een API in de praktijk?

De afkorting API staat voor het Engelse Application Programming Interface. Met interface wordt hier bedoeld hoe softwareonderdelen met elkaar communiceren, niet een scherm met knoppen. Een gebruiker bedient een applicatie via een formulier of menu. Een programma kan daarentegen een ander systeem gebruiken via de API van dat systeem.

Je kunt een API vergelijken met een bestelformulier: het geeft aan wat je kunt bestellen, welke informatie je moet opgeven en welke bevestiging je kunt verwachten. Je hoeft niet te weten hoe een magazijn intern is georganiseerd om een geldige bestelling te plaatsen. Zo hoeft een applicatie ook niet te weten hoe het andere systeem gegevens opslaat of berekeningen uitvoert.

Bij een gebruikelijke API die via internet werkt, verloopt de communicatie als volgt:

  1. De applicatie stuurt een verzoek om gegevens op te halen of een handeling uit te voeren.
  2. Het ontvangende systeem controleert of het verzoek geldig is en, indien nodig, of de afzender de juiste rechten heeft.
  3. Het systeem voert de handeling uit en stuurt een antwoord terug met het resultaat of een foutmelding.

Niet elke API werkt via internet. Ook besturingssystemen en bibliotheken bieden programmeerinterfaces aan. Bibliotheken zijn kant-en-klare verzamelingen functies die bij het programmeren worden gebruikt. Wanneer het gaat over het koppelen van diensten, wordt met ‘API’ meestal communicatie via een netwerk bedoeld.

Voorbeeld: een webshop laat een pakket verzenden

Stel je een webshop voor die is gekoppeld aan het systeem van een koeriersbedrijf. Zodra een bestelling is betaald, verstuurt de webshopsoftware via een API de gegevens die nodig zijn om de zending aan te maken, zoals het adres van de ontvanger, de gekozen dienst en de pakketgegevens. Het systeem van het koeriersbedrijf kan als antwoord een zendingsnummer en een afdrukbaar verzendlabel terugsturen.

Een medewerker hoeft die informatie dan niet opnieuw in te voeren in het portaal van de vervoerder. Later kan de webshop de status van de zending ophalen en aan de klant tonen. Welke handelingen mogelijk zijn en welke gegevens nodig zijn, hangt af van de specifieke API.

Dat een vervoerder een API aanbiedt, betekent echter niet dat de webshop die automatisch gaat gebruiken. Daarvoor is een integratie nodig: een geconfigureerde koppeling tussen de systemen, via een kant-en-klare plug-in, een automatiseringsdienst of een apart programma. Een API maakt communicatie mogelijk; de integratie voert een concreet bedrijfsproces uit.

Wat betekenen endpoint, HTTP en JSON?

In de documentatie van een API die via internet werkt, kom je vaak het begrip endpoint tegen: een specifiek adres waarop een bepaalde functie of een bepaalde bron beschikbaar is. Het pad /producten/123 kan bijvoorbeeld verwijzen naar de gegevens van het product met identificatienummer 123. Dit is een illustratie: de dienstverlener bepaalt de werkelijke adressen.

Veel van deze interfaces gebruiken HTTP, het communicatieprotocol dat ook door websites wordt gebruikt. Een verzoek bevat een methode die het soort handeling aangeeft. De methode GET dient om gegevens op te halen. POST wordt vaak gebruikt om gegevens te versturen, bijvoorbeeld bij het aanmaken van een bestelling.

Het antwoord kan zijn vastgelegd in JSON, een tekstformaat voor gegevens dat programma’s kunnen lezen. Een eenvoudig resultaat zou er zo uit kunnen zien: {"id":123,"naam":"Mok","beschikbaar":true}. De applicatie leest de velden en toont op basis daarvan de productnaam en de beschikbaarheid.

Een API geeft ook informatie over fouten door. Bij communicatie via HTTP betekent de code 404 meestal dat de gevraagde bron niet is gevonden. 429 betekent dat er te veel verzoeken binnen een bepaalde tijd zijn verstuurd. Een goed werkende integratie moet ook kunnen omgaan met het uitblijven van een antwoord, een onbereikbare dienst en ongeldige gegevens, in plaats van ervan uit te gaan dat elke handeling slaagt.

Moet je kunnen programmeren om een API te gebruiken?

Als een kant-en-klare plug-in de benodigde dienst ondersteunt, kan het gebruik van een API beperkt blijven tot het koppelen van accounts en het instellen van enkele opties. Met automatiseringstools kun je ook eenvoudige workflows maken zonder code te schrijven, bijvoorbeeld om meldingen uit een formulier door te sturen naar een klantenservicesysteem.

Een programmeur is meestal nodig wanneer er geen kant-en-klare koppeling bestaat of wanneer het proces afwijkende logica vereist. Denk bijvoorbeeld aan het synchroniseren van voorraadgegevens uit meerdere bronnen, waarbij tegenstrijdige gegevens moeten worden opgelost en mislukte handelingen veilig opnieuw moeten worden geprobeerd.

Handmatig bestanden exporteren en importeren kan een alternatief zijn voor een API. Als je slechts af en toe een kleine hoeveelheid gegevens uitwisselt, kan dat voldoende zijn. Een API is zinvoller wanneer de uitwisseling vaak plaatsvindt of wanneer gegevens naar het andere systeem moeten worden doorgestuurd zonder de export handmatig te starten.

Wat moet je controleren voordat je diensten koppelt?

Toegang tot een API is niet altijd openbaar of gratis. Vaak is een API-sleutel of token nodig: authenticatiegegevens waarmee toegang wordt geautoriseerd. Zet vertrouwelijke sleutels niet in de openbaar toegankelijke code van een website en stuur ze niet naar mensen die ze niet nodig hebben.

Controleer vóór de implementatie de volgende punten in de officiële documentatie en de voorwaarden van de aanbieder:

Beschrijf eerst één taak, bijvoorbeeld: ‘Maak een zending aan zodra de bestelling is betaald.’ Controleer vervolgens of er een kant-en-klare integratie bestaat. Zo niet, ga dan na of de API van beide systemen de functies biedt die nodig zijn om die taak uit te voeren.

Lees ook: Wat is 2FA?

Lees ook

Lees hoe PHP-FPM PHP-verzoeken verwerkt, verschilt van een webserver en hoe je processen afstemt op verkeer en hostingcapaciteit.
Ontdek hoe BIND als open DNS-serversoftware domeinen beheert, welke rollen het vervult en wanneer zelf beheren zinvol is.
Lees wat het Poolse REGON-register en -nummer betekenen, hoe ze verschillen van NIP en KRS en hoe je bedrijfsgegevens controleert.