De vrijdagmiddag-test

Een goede API-koppeling is een koppeling waar je op vrijdagmiddag niet aan hoeft te denken. Niet omdat ze nooit stuk gaan, wel omdat ze stuk gaan op een manier die voorspelbaar, gedetecteerd en omkeerbaar is.

Het verschil tussen een koppeling die overleeft en eentje die op het slechtste moment breekt zit zelden in code-kwaliteit. Wel in welke aannames je vooraf inbouwt.

Drie ingebouwde aannames

  1. Input van buiten is verdacht. Validatie vóór de data in onze database belandt. Niet omdat de leverancier kwaadwillend is, wel omdat een undocumented field-rename op een woensdagavond zomaar gebeurt.
  2. Alles kan opnieuw. Idempotente endpoints. Een herhaling mag nooit een dubbel record opleveren. Scheelt jullie later het uitzoeken van wat er per ongeluk twee keer gebeurde.
  3. Alles wordt zichtbaar. Een dashboard waar je in vijf seconden ziet of een leverancier z'n API stilletjes heeft veranderd. Geen log-graven, geen vermoedens.
Probeer dit zelf

Vraag de bouwer van jullie koppelingen: wat gebeurt er als ik dit endpoint twee keer aanroep? Als het antwoord onzeker is, weten jullie waar de eerste verbetering zit.

Wat dat in de praktijk scheelt

Een leverancier die op donderdag een undocumented field-rename uitrolt, ziet maandagochtend onze melding. Niet andersom: een gebroken proces dat al een weekend draait. Het is geen rocket science. Het is een keuze om koppelingen te bouwen voor de dag waarop het misgaat.

5 secom te zien of een externe API is veranderd
0 wkdata-recovery na een herhaalde request
1 dashboardin plaats van log-graven op vrijdagavond

Wat je hieruit meeneemt

Bouw voor de dag waarop het misgaat, niet voor de dag waarop het werkt
Idempotente endpoints schelen later de meeste tijd
Een API-dashboard kost één dag werk
Een melding op maandag voorkomt een crisis op dinsdag