De API. Wat?
Robin Spoelstra | 27 jun 2019
Heb je wel eens van API's gehoord? Ze zijn overal! Websites beschikken over veel informatie, waarvan de content doorgaans in een CMS (Content Management Systeem) geplaatst wordt waarmee het in de eigen database terecht komt. Dit is waardevolle informatie waar potentiële bezoekers op af komen. Die informatie kun je voor jezelf houden, maar het kan ook gedeeld worden. Heel interessant, maar laten we eerst even kijken hoe het werkt als we zelf informatie van een externe gegevensbron binnen willen halen.
Informatie binnenhalen met een API
Je wilt een website laten ontwikkelen met informatie afkomstig uit een andere bron. Wat zijn dan je opties? Handmatig kopiëren en plakken is een mogelijkheid, maar ook tijdrovend. Een technische oplossing ligt meer voor de hand. We kunnen de website, net als jij zou kunnen doen, naar het adres van een pagina laten gaan om de informatie daar vanaf te halen, maar grote kans dat er ruis meegenomen wordt. Voorbeeldje: Als Apotheek.nl de informatie over lage bloeddruk wil tonen van Thuisarts.nl dan willen ze graag alleen informatie ophalen over lage bloeddruk. Niet het menu, niet het logo van Thuisarts, niet de footer en niet de CSS of Javascript. Hoe dan wel? Met de API van Thuisarts!
Tegen een endpoint aanpraten
Een API (Application Programming Interface) is in veel gevallen gewoon een webpagina of verzameling van webpagina’s, maar in plaats van alle opmaak die het bekijken van de pagina voor een normale bezoeker prettig maakt, zijn de pagina’s opgemaakt voor een machine. Kijk bijvoorbeeld eens naar deze pagina die je een Chuck Norris grap voorschotelt. De informatie die je hier ziet is opgemaakt als JSON, een manier waarop data gepresenteerd wordt. Het is wat moeilijker te lezen voor ons mensen, maar een machine vindt het een stuk prettiger zonder de ruis die een normale webpagina met zich meebrengt. Daardoor kan de informatie snel verkregen worden. In plaats van webpagina of URL noemen we het een endpoint dat aangesproken kan worden.
Ah, aangesproken worden. API’s, daar kun je tegenaan praten. Een veelgehoorde uitspraak. Een machine spreekt een API aan op een endpoint en de API geeft een antwoord in de vorm van bijvoorbeeld JSON. Kun je raden wat je bij de volgende fictieve endpoints terug zou kunnen krijgen?
https://oneshoe.nl/api/blogs/newest/5/
https://oneshoe.nl/api/recipes/strawberry/
De site van jouw pakketbezorger spreekt een API aan van een andere site. Die andere site geeft JSON-data terug en jouw pakketbezorger toont de informatie vervolgens in zijn eigen lay-out weer aan jou. Informatie die niet in de eigen database beschikbaar was, maar toch razendsnel getoond kan worden. En maak je geen zorgen, die API verbindingen kunnen goed dichtgetimmerd worden waardoor niet iedereen erbij kan.
Alle content extern
We hebben er nu over gesproken om sommige content van je website uit externe bronnen halen. Maar waarom niet alle? Het was lange tijd bijna vanzelfsprekend dat elke website een eigen database heeft, maar dat is overbodig geworden door het gebruik van content management systemen in de cloud, zoals Prismic of Contentful. Een nieuw artikel plaatsen? Inloggen op de site van Prismic en het artikel plaatsen in een frisse moderne interface. Als een bezoeker het artikel wil lezen op jouw website, dan maakt de website contact met de API van het cloud CMS om het te tonen. De API vormt hier dus de brug tussen het cloud CMS en de website. Dit kan behoorlijk schelen in de ontwikkelkosten van een website, want een goed passend cloud CMS kan bij het opzetten van de website veel werk uit handen nemen. En datzelfde cloud CMS kan de data ook gelijk doorzetten naar een app!
Eigen data ontsluiten
Ok, een cloud CMS heb je nog niet. Alle informatie van jouw site staat in een eigen database. Hoe kan One Shoe je helpen met het beschikbaar maken van de data van jouw website voor een andere website of app? Voor Thuisarts heeft One Shoe een site gebouwd waarbij een deel van de database gegevens ook ontsloten worden door middel van een beveiligde API. Zo wordt de site apotheek.nl deels gevoed met data die afkomstig is van Thuisarts.nl. Thuisarts kan zelf bepalen welke data wel en welke niet beschikbaar is én wie er toegang heeft tot deze gegevens. Behalve dat je data met eigen sites kunt delen kan het ook commercieel aantrekkelijk zijn om de data met andere partijen te delen. Een API maakt dit mogelijk.
Headless CMS & API’s
Dan is er nog een laatste buzzword wat niet ongenoemd kan blijven in deze blog: Headless. Een site zonder hoofd. Zonder voorkant. Dat is waarschijnlijk geen site zoals je gewend bent. Doorgaans is het een CMS dat gegevens plaatst in een database die vervolgens ontsloten worden met een API. Dit kan gebouwd worden in combinatie met het hoofd (voorkant) van de website, maar dat hoeft niet.
De voorkant en achterkant van de website kunnen afzonderlijk van elkaar ontwikkeld worden door een API te gebruiken als communicatiemiddel tussen beide. Dit heeft qua voordelen veel overlap met een Cloud CMS, maar geeft meer regie over hoe content ingevoerd kan worden. Headless kan ook handig zijn als je simpelweg data beschikbaar wil stellen. Je kunt er innovatie met jouw gegevens mee mogelijk maken , want misschien is er wel een creatieve derde partij die jouw data combineert met data van andere API’s om tot een handige app te komen! Onder andere overheidsdiensten zijn je voorgegaan met het beschikbaar maken van data die zij niet zelf in een mooie site of app gieten, maar enkel aanbieden met een API.
Wil je meer weten over de digitale kansen van API’s voor jouw organisatie? Check hier!