Wat is een API?

Bij Internetbureau Conkreet ontwikkelen we steeds meer maatwerk oplossingen die opgebouwd zijn rondom een API. Maar wat is een API, en wat kun je er mee?

Verschillende lagen

Een web applicatie (dat kan een website, webshop of maatwerk applicatie zijn) bestaat vaak uit een aantal verschillende lagen. De basis is een database waarin alle data wordt opgeslagen. Daarnaast is er vaak een backend, een beheersysteem waarop de gebruiker moet inloggen en waarmee de data beheerd kan worden, en een frontend, een publiek toegankelijk deel van de applicatie of website. Zowel de backend als de frontend communiceren met de database door middel van het uitvoeren van zogenaamde database-queries. Een query is een instructie waarmee je data uit bepaalde tabellen kan opvragen, toevoegen, aanpassen of verwijderen. Deze queries zijn vaak in de code van de backend en frontend geprogrammeerd.

Verschillende applicaties maken rechtstreeks verbinding met de database. Elke applicatie moet eigen queries uitvoeren om de data te benaderen.

De beperkingen van deze aanpak

Een web applicatie rechtstreeks laten communiceren met een database heeft een aantal beperkingen. De data is namelijk alleen beschikbaar voor de web applicatie. Wil je een nieuwe applicatie ontwikkelen die gebruik maakt van dezelfde data, moet deze applicatie ook alle queries bevatten om dezelfde data op te vragen. Als er dan iets wijzigt aan bijvoorbeeld de structuur van de data, dan moeten alle applicatie gecontroleerd worden om de queries aan te passen. De schaalbaarheid en beheersbaarheid zijn dus beperkt.

Daarnaast kan het interessant zijn om een deel van de data beschikbaar te stellen aan derden, alleen wil je deze externe partijen natuurlijk geen toegang verlenen tot je volledige database. En als je een manier hebt gevonden om deze data beperkt toegankelijk te maken, moet je je database alsnog bloot stellen aan het internet, en dat is dan weer een groot beveiligingsrisico.

Een API biedt de oplossing

Een API koppelt het uitvoeren van queries en andere verwerkingen los van de onderliggende applicaties. De afkorting staat voor Application Programming Interface, wat zoveel wil betekenen als een tussenlaag (interface) waarin het uitvoeren van de logica (programming) van een applicatie (application) wordt uitgevoerd. Een API vormt dus een laag tussen de verschillende applicaties en de achterliggende database.

Daarnaast bevat een API vaak ook diverse controles en aanvullende verwerkingen, zodat de applicaties die via de API communiceren deze taken niet uit hoeven te voeren. De applicaties hoeven dus geen intelligentie meer te bevatten, deze taken worden overgenomen door de API. Het ontwikkelen en testen van losse applicaties wordt daarmee ook een stuk simpeler, en data wordt minder gevoelig voor vervuiling door fouten, omdat er één tussenlaag is die alle communicatie controleert.

Een API controleert alle communicatie tussen de database en alle applicaties die gebruik willen maken van deze data. Een deel kan publiek worden aangeboden, bijvoorbeeld voor externe ontwikkelaars, en een deel is beveiligd.

Een applicatie die communiceert met de database via een API wordt vaak een client genoemd. Je kunt een API eenvoudig beveiligen door middel van een wachtwoord, welke vaak een API-key wordt genoemd. Een extra voordeel is dat je per client kunt aangeven welke API instructies mogen worden uitgevoerd. Hierdoor kun je bijvoorbeeld een openbare API-key vrijgeven voor het verlenen van toegang aan derden. Het is ook fijn om te weten dat je op deze manier ook op elk gewenst moment de toegang voor een bepaalde API-key kan blokkeren.

Meer weten?

Wil je meer weten over wat het gebruik van een API voor jou kan betekenen? Wil je jouw data ook makkelijker toegankelijk maken, bijvoorbeeld voor het ontwikkelen van een app, of andere externe applicaties? Neem dan contact op met Jeroen Tomas, 085 – 303 74 20, of mail naar [email protected].