Vandaag de dag gebruiken we veel verschillende systemen. Deze systemen werken niet allemaal individueel, maar praten veelal met elkaar. Dat scheelt werk, tijd en dus geld. Om deze systemen aan elkaar te koppelen worden API’s gebruikt. Maar hoe werkt een API, en kan een API ook het middelpunt zijn van je software?

Geschreven door Bart Wesselink, Head of Development

In de basis is het concept van een API (Application Programming Interface) relatief eenvoudig. Veel applicaties zijn afhankelijk van andere software of services. Met een API kan aangegeven worden hoe er met deze software of services gecommuniceerd kan worden. Bij de communicatie kun je bijvoorbeeld denken aan: welke acties kunnen er gestart worden, of hoe wordt data opgehaald. Hoewel API’s vaak geassocieerd met webapplicaties, zijn er ook zeker koppelingen tussen software op andere niveaus.

Web-API’s

In dit artikel zullen wij ons met name richten op Web-API’s. Deze API’s communiceren via HTTP – hetzelfde protocol dat ervoor zorgt dat jij en ik nu deze website kunnen openen. Het verschil is alleen dat dit via een afgesproken formaat gaat. De aanbieder van de API beschrijft hoe zijn data opgehaald kan worden en welk formaat je terugkrijgt. De afnemer van de API gebruikt dit om de data daadwerkelijk op te halen. Het aanbieden van een API kan met verschillende methodes. Op dit moment zijn de meest gebruikte methodes RESTful-API’s en GraphQL. In dit artikel zullen we kijken naar de werking van een RESTful-API.

Om te zien hoe zo’n API werkt, zullen we een fictieve (online) boekenwinkel gebruiken. Deze boekenwinkel heeft een API waarmee boeken opgehaald kunnen worden, en de bijbehorende gegevens: naam, auteur, uitgever, coverafbeelding en jaar.

RESTful-API’s

We beginnen met een RESTful-API. Een RESTful-API leunt erg op het gebruik van het standaard HTTP-protocol dat hierboven al beschreven werd. Via HTTP kun je verschillende commando’s aan een webserver geven, zoals GET, POST, PUT of DELETE. In een RESTful-API betekenen deze commando’s respectievelijk het ophalen, aanmaken, bewerken of verwijderen van een item.

In onze boekenwinkel ziet dat er als volgt uit: we hebben verschillende URL’s voor de verschillende operaties. Allereerst hebben we algemene paden, /books, om een nieuw boek aan te maken, of alle boeken op te halen. Daarnaast hebben we specifieke paden, /books/{id} om een operatie op een specifiek boek uit te voeren (met een bepaald nummer). Of dat ophalen, bewerken of verwijderen is, is afhankelijk van het gebruikte HTTP-commando.

Zodra een van de bovenstaande paden aangeroepen wordt, gaat de webserver aan de slag, en komt deze terug met een antwoord. Hoe dit antwoord gegeven wordt, staat zeker niet vast voor een RESTful-API, maar één van de meest gebruikte formaten is JSON. JSON is een relatief simpelgegevens formaat, waarbij je een sleutel koppelt aan een waarde. Een voorbeeld voor een boek zou er bijvoorbeeld zo uit kunnen zien:

API-first

Door het gebruik van een RESTful-API, of welk ander type API dan ook, kunnen softwareprojecten API-first ontwikkeld worden. Bij een API-first project staat de API voorop. Deze API bepaalt welke gegevens er beschikbaar zijn, en welke operaties er uitgevoerd kunnen worden. Vaak zijn er verschillende onderdelen van zo’n project die met deze API praten, zoals een beheerpaneel of een app.

Met de API-first methode kunnen deze onderdelen los van elkaar ontwikkeld worden, en kan veel logica herbruikt worden door de verschillende afnemers. Daarnaast wordt het voor externe systemen makkelijker om met het softwarepakket te praten, omdat de API’s al beschikbaar zijn.

Conclusie

Het maken van API-first software en het koppelen van externe systemen biedt eindeloze mogelijkheden. Binnen Recognize worden vrijwel alle applicaties API-first ontwikkeld. Benieuwd naar wat dat voor jou kan betekenen? Neem dan contact met ons op!

LET’S
CONNECT!

Benieuwd naar wat we voor jou kunnen betekenen? Of kun je iets voor ons betekenen? Dan horen we graag van je! Bel of mail gerust. We komen graag langs om kennis te maken. En natuurlijk staan onze deuren op de zevende verdieping van de Javatoren in Almelo ook altijd voor je open.