De API filosofie

"Enne... Wat doet dat dan precies, zo'n API?". Deze vraag krijgen wij vaak te horen sinds onze start twee maanden geleden. Wat voor ons vanzelfsprekend lijkt, is dat voor menig persoon logischerwijs niet. Het technische aspect is uiteraard moeilijk te begrijpen voor mensen die niet technisch zijn, maar zowel zakelijk als privé worden we met behulp van koffiebekers, bierglazen en bureaustoelen steeds beter in het uitleggen van de API filosofie, een gedachtegang die in de fysieke wereld het beste te vertalen is naar "Schoenmaker, blijf je leest".

De-centralisatie en specialisatie zijn de keywords die volgens de API filosofie de efficiëntie in de wereld gaan verbeteren. Elke dienst, algoritme of instantie moet dat doen waar het goed in is en niet meer of minder. Dit fenomeen staat bekend als separation of concerns en is, in normale mensentaal, eigenlijk het tegenovergestelde van totaalvoetbal waarbij een keeper mee moet kunnen voetballen terwijl een spits ook moet helpen in de verdediging.

Een praktisch voorbeeld is te vinden in de horeca. Als bij mooi weer de terrassen vol stromen is het een flinke uitdaging om iedereen op tijd van een drankje te voorzien. Een barman die alles alleen doet is leuk in het kleine café aan de haven, maar als het druk wordt op een groot terras worden de taken dikwijls gesplitst in het opnemen, klaarmaken, uitserveren en afrekenen van bestellingen. Wellicht iets minder persoonlijk, wel zo efficiënt: de barman die heel goed kan tappen maar niet die leuke glimlach heeft zet perfect getapte biertjes klaar, terwijl de goedlachse serveerster, die niet zo goed kan tappen, de ene na de andere bestelling opneemt.

Allemaal leuk en aardig, maar dit werkt natuurlijk alleen als de samenwerking volledig op elkaar is afgestemd en de communicatie tussen de verschillende specialismen vlekkeloos verloopt. Deze communicatie wordt in de digitale wereld geregeld door API's, een soort tolken die verschillende diensten, algoritmes en informatiebronnen met elkaar kunnen laten 'praten'.

Zo'n Application Programming Interface zorgt ervoor dat applicaties die geen weet hebben van elkaars specialismen toch eenvoudig geïntegreerd kunnen worden. Neem bijvoorbeeld een payment provider zoals iDeal. De enige opdracht die iDeal binnenkrijgt is het verzoek om een bepaald bedrag van een bankrekening over te maken naar een andere bankrekening en om te laten weten of dit wel of niet gelukt is. Of dat nu is voor de aanschaf van een nieuwe telefoon, een broodje shoarma of een vrijwillige donatie aan de lokale buurtvereniging, het zal iDeal een spreekwoordelijke worst wezen. iDeal specialiseert zich op het verwerken van betalingen en doet dat goed, niet meer en niet minder.

Een andere mogelijkheid zien we in de medische wereld. Iemand die om wat voor reden dan ook een ledemaat mist hoeft het tegenwoordig allang niet meer te doen met een houten been. Door de vergevorderde ontwikkelingen in robotica is men anno 2015 in staat om protheses te creëren die bijna dezelfde menselijke bewegingen kunnen maken als echte ledematen. Om een dergelijke prothese 'aan te sluiten' op het menselijk lichaam is er een adapter nodig die signalen van het zenuwstelsel omzet naar digitale opdrachten die een robot-arm bijvoorbeeld begrijpt. Als deze 'human API' er komt zouden medici zich kunnen focussen op het gedeelte van het 'systeem' tot de API (in dit geval het menselijk lichaam) en zouden niet-medisch specialisten zich kunnen focussen op het gedeelte vanaf de API (in dit geval een robot-arm). De ontwikkeling van de adapter zelf is de taak van een API specialist met ondersteuning van een domein expert. Separation of concerns in optima forma.

Op abstracter niveau gaat de API filosofie ook een steeds grotere rol spelen. Met de opkomst van het Internet of Things stijgt het aantal conversiekanalen aanzienlijk. Naast de traditionele (mobiele) websites, social media en apps onstaat er nu een wildgroei aan Smart Watches, Smart TVs, Connected Cars, etc. Al deze kanalen bedienen is onbegonnen werk, tenzij de core-business aangeboden wordt op een manier waar machines en ontwikkelaars mee overweg kunnen. Over een paar jaar vraagt iedereen op zijn/haar telefoon aan Apple's Siri, Microsoft's Cortana of Google's Now wat voor weer het wordt en waar en wanneer ik het beste mijn ticket voor Ronnie Ruysdael kan kopen of mijn rijbewijs kan verlengen. Als het goed is krijg ik dan geen website meer te zien en kom ik meteen in het bestelproces terecht of, als poppodia en gemeenten ook goede API's aanbieden, handelt mijn digitale assistent de bestelling helemaal zelf af en zet het keurig in mijn agenda.

Een mooie website is een leuk visitekaartje, maar het web zoals we dit nu kennen verandert snel. Net zoals de gespecialiseerde microservices die via API's communiceren moet ook een organisatie doen waar het goed in is en kritisch naar de doelstellingen kijken. Een poppodium verkoopt tickets, een gemeente dient de burger, een reisbureau organiseert reizen en een friettent bakt friet. Of je je diensten en producten nu converteert via zoekmachines, een digitale assistent, mond-tot-mondreclame, applicaties van derden of een slimme koelkast; het gaat om het behalen van het doel, niet om het aantal bezoekers op de website. Voor websites die enkel geld verdienen met het genereren van traffic ziet de toekomst er dan ook somber uit. Doe dat waar je goed in bent en zorg dat machines en ontwikkelaars hiermee uit de voeten kunnen. De ontwikkeling van een goede API strategie is dan ook het antwoord om succesvol te zijn in een door API's en data gedreven economie.