Een API is een afgesproken taal tussen twee programma's. Je webshop kan aan je ERP vragen hoeveel er op voorraad ligt, en het ERP antwoordt in een vorm die de webshop begrijpt. Meer is het niet.
Het woord klinkt technischer dan het is. Wat je moet weten is niet hoe het werkt, maar wat je ervan mag verwachten en waar het misgaat.
Wat een koppeling meestal doet
In de praktijk zien we vier soorten:
- Gegevens ophalen. Voorraad, prijzen, klantgegevens. Meestal elke paar minuten.
- Gegevens wegschrijven. Een order die binnenkomt gaat door naar het ERP, een factuur naar de boekhouding.
- Een melding opvangen. Het andere systeem belt jou zodra er iets verandert. Dat heet een webhook en is bijna altijd beter dan elke minuut vragen of er nieuws is.
- Een bestand uitwisselen. Ouderwets, maar bij oudere systemen soms de enige weg die er is.
Waar het misgaat
Een koppeling is geen ding dat je aanzet en vergeet. Dit zijn de plekken waar het in de praktijk misloopt:
- De andere kant ligt eruit. Dat gebeurt. De vraag is of jouw systeem het dan netjes opnieuw probeert of stilletjes stopt.
- Er komt iets doorheen dat niet klopt. Een order zonder klant, een prijs van nul. Zonder controle staat dat een uur later in je administratie.
- Dubbele verwerking. Een bericht komt twee keer binnen en de order staat er twee keer in. Dit is de klassieker.
- Een stille wijziging. De leverancier verandert iets aan zijn API en niemand heeft het gemeld.
Daarom bouwen wij bij elke koppeling een logboek en een melding: gaat er iets niet door, dan weet je het voordat een klant belt. Dat is meer werk dan alleen de koppeling zelf, en het is precies het verschil tussen een koppeling die je vertrouwt en een die je elke ochtend controleert.
Wat je aan je leverancier moet vragen
Voordat je iets laat bouwen, vraag dit op:
- Is er documentatie van de API, en is die openbaar?
- Zit er een testomgeving bij? Zonder testomgeving bouw je in het donker.
- Hoeveel verzoeken mogen er per minuut? Dat bepaalt of live bijwerken kan of dat het elke tien minuten wordt.
- Wat gebeurt er bij een storing aan hun kant, en hoe word je gewaarschuwd?
- Kost het extra? Sommige pakketten rekenen per koppeling of per bericht.
En als er geen API is
Dan bouwen we de brug ernaartoe. Dat kan via een export die het systeem wel kan maken, via de database als we daar netjes bij mogen, of in het uiterste geval via het scherm zelf. Dat laatste is fragiel en we raden het meestal af, maar bij een pakket dat morgen niet vervangen wordt is het soms de goedkoopste weg.
Wat je daarbij wel moet weten: hoe minder officieel de weg, hoe groter de kans dat een update van de leverancier hem breekt. Die afweging maak je vooraf, niet als het stukgaat.