Alles wat je moet weten over API’s

Nou ja alles. In ieder geval genoeg om een weloverwogen beslissing te maken of je toe bent aan een API en waar je rekening mee moet houden als je een API wilt laten ontwikkelen. 🙈

Wat is een API?

Je kent het wel, je gebruikt een systeem dat heel handig is, maar het zou nog handiger zijn als het kon ‘praten’ met een ander systeem dat je ook gebruikt. Om dit mogelijk te maken is de API uitgevonden, kort voor ‘Application Programming Interface’. Een “API (spreek uit E-PI-AI en niet apie 🐵 )”. De laatste jaren zijn vooral de REST API’s populair geworden. REST staat voor ‘Representational State Transfer’. Systeem A stuurt een vraag naar systeem B, bijvoorbeeld: “Geef mij de voornaam van klant 1” en systeem B levert de gevraagde data. Met dit vraag en antwoord principe zijn miljoenen systemen aan elkaar gekoppeld. Het kan gaan om een heel eenvoudig proces, zoals het inladen van Instagram afbeeldingen op je website tot een complexe koppeling tussen meerdere administratiesystemen en betaaldiensten. Diensten die bekend zijn geworden om hun API’s zijn bijvoorbeeld betaaldiensten, zoals Mollie en Stripe, nieuwsbriefservice MailChimp en administratiesystemen, zoals Exact Online.

De API, zoals die vaak ‘bedoeld is’ is de functionaliteit die de leverancier van een systeem beschikbaar stelt om ‘mee te praten’ en de documentatie met de noodzakelijke instructies. De API-koppeling is de communicatie die gerealiseerd moet worden tussen de twee systemen, zodat zij met elkaar informatie en instructies kunnen uitwisselen. 

Twee API’s wisselen data uit

Waar moet je rekening mee houden met de ontwikkeling van een API koppeling?

Het realiseren van een betrouwbare API koppeling vraagt de nodige expertise en ervaring. Beginnelingen beweren vaak heel goedkoop en snel een koppeling te kunnen maken, want hoe moeilijk kan het zijn als je de instructie hebt? 10 regels data over en weer sturen duurt niet lang en is niet moeilijk, maar wat als dat er na 5 jaar meer dan 1000, 10 000 of zelfs 100 000 zijn? Wat gebeurd er als er een betaalbevestiging van het ene naar het andere systeem gestuurd is en juist op dat moment een van de twee systemen niet thuis geeft? Hoe zorg je dat het dataverkeer tussen de twee systemen goed afgeschermd is? Al dat soort risico’s en meer moet de koppeling mogelijk rekening mee houden en al die randscenario’s afschermen dat kost veel tijd. Een ontwikkelaar die je niet op dergelijke risico’s wijst of er naar vraagt gaat ze ook niet afdekken met alle gevolgen van dien. Bij API’s is nog altijd: “pay peanuts, get monkeys” het devies.

Wie laat jij een API bouwen?

Welke risico’s brengt een API met zich mee?

Buiten de technische uitdagingen zijn er ook organisatorische problemen waar je tegenaan kunt lopen als twee partijen moeten gaan samenwerken. Is bijvoorbeeld de documentatie wel helemaal bijgewerkt en is overleg tussen de programmeurs mogelijk? Dat klinkt minder logisch dan het is, want probeer jij maar eens een developer bij Facebook, Freshdesk of Apple te spreken te krijgen om een technisch probleem op te lossen. In veel gevallen is het maken van zo’n koppeling ook niet iets waar softwareontwikkelaars enorm om zitten te springen en ze houden er vaak ook geen rekening mee dat jij in de problemen komt als zij ergens de stekker uit trekken. Het is daarom belangrijk dat de partij die de koppeling voor je gerealiseerd heeft door de jaren heen de mogelijke aanpassingen kan maken.

Een goede documentatie is daarom van belang. Zorg ervoor dat je niet afhankelijk bent van het geheugen van een enkele programmeur, maar dat vastgelegd is hoe de koppeling werkt en welke data uitgewisseld wordt door de verschillende systemen. Een professionele ontwikkelaar zal naast de nodige documentatie ook een error log inbouwen. Een stukje code die fouten registreert en aangeeft waar de fout is opgetreden. Er is niets minder efficiënt dan programmeurs in twee systemen te laten zoeken naar een speld in een hooiberg. De crème de la creme is de unit test. Een stukje code die iedere dag alle processen automatisch test en alarm slaat als er een probleem is. Wat je nodig hebt hangt af van de impact die de API op je bedrijfsvoering heeft. Ga je tickets verkopen voor een evenement dan wil je niet dat bij de opening van de kaartverkoop een storing roet in het eten gooit. Haal je een paar afbeeldingen op van Instagram dan is het wellicht geen ramp als eens in de zoveel tijd de verbinding er even uit ligt.

Voor een festival is een betrouwbare kaartverkoop essentieel

Zijn API’s duur?

Een API is eigenlijk nooit te duur, behalve als het niets gaat opleveren. Reken bijvoorbeeld uit hoeveel manuren het nu kost om gegevens van systeem A naar systeem B over te typen en wat het kost als er door dat handwerk fouten in sluipen. Een punt of komma verkeerd en 20 000 Euro kan plotseling 2 000 Euro zijn geworden in de administratie. Een fout die niet mogelijk is met goede automatisering. De vraag is dus niet wat kost een API, de vraag is ‘wat mag het kosten’ en ‘wat levert het op welke termijn op’?

Let wel op dat niet alles te automatiseren is en niet alle automatisering een positief effect heeft. Software systemen zijn namelijk Sith en geen Jedi, ze redeneren in ‘absolutes’. Het is 1 of 0, ja of nee. Direct betalen of een aanmaning. Toegang of geen toegang. Die ene oud bestuurder die je altijd over hebt geslagen met de facturatie of de coulance die je toepast, omdat je weet dat een klant in slecht weer zit. De gekoppelde systemen gaan daar geen rekening mee houden, tenzij je al die uitzonderingen in de programmatuur meeneemt. Meer uitzonderingen betekent niet alleen hogere kosten, maar ook meer complexiteit en wat in de software wereld ‘points of failure’ genoemd worden.

Blijf hip, maar zorg wel voor duidelijke foutmeldingen

Advies voor je een API laat bouwen

Je begint daarom bij het realiseren van een API altijd met het in het kaart brengen van het proces. Vergeet techniek, maar pak eerst pen en papier. Teken uit hoe de ‘flows’ lopen en welke data uitgewisseld moet worden en heel belangrijk wat uiteindelijk het resultaat is van die gegevensuitwisseling. Heb je dat in de smiezen dan kun je gaan kijken wat er technisch mogelijk is, wat de grootste risico’s zijn en wat voor budget daar bij zou passen. Uiteraard bieden veel webbureau’s en digital agencies, zoals Studio Projectie aan om de processen, risico’s en mogelijke winst in tijd en geld voor je in kaart te brengen.

Begin ook waar mogelijk klein als je start met automatiseren. Zeker als je nog niet eerder met API ontwikkeling in aanraking bent gekomen kun je voor grote verrassingen komen te staan. Maak het voor je zelf behapbaar, want als jij het beoogde proces zelf al niet snapt dan is het voor een programmeur onmogelijk om het goed te automatiseren. Het allerduurste is namelijk ‘achteraf’ te ontdekken dat het toch niet lekker werkt of dat je de helft van de stappen vergeten bent. Door stap voor stap te werken en alles goed te testen kun je het proces beter volgen en controleren of het allemaal klopt.

Zo zie je dat er achter de wereld van API’s heel veel schuilgaat. Heb je zelf al eens overwogen om een API te gaan ontwikkelen? Wil je meer weten over API’s of vraag je je af of twee van je favoriete systemen met elkaar zouden kunnen ‘praten’? Wij horen graag meer!

Wegwijs worden in de API jungle?

Wij helpen je graag op weg met API’s, zodat je tijd en geld kunt gaan besparen!