Leg het contract vast
Beschrijf endpoints, velden, typen, verplichte waarden en foutcodes. Versiebeheer voorkomt dat een aanpassing bestaande afnemers onverwacht breekt. Een klein voorbeeldverzoek en voorbeeldantwoord besparen vaak meer tijd dan een lange algemene uitleg.
Beveilig de juiste onderdelen
- Gebruik TLS en een passende vorm van authenticatie.
- Controleer autorisatie per object en handeling; ingelogd zijn is niet genoeg.
- Valideer invoer en stel grenzen aan omvang en aantallen verzoeken.
- Bewaar sleutels en wachtwoorden buiten broncode en logs.
- Geef foutmeldingen die bruikbaar zijn zonder interne details prijs te geven.
Voorkom dubbele verwerking
Netwerkproblemen leiden tot retries. Gebruik daarom een unieke externe sleutel of idempotency-key voor handelingen die maar één keer mogen plaatsvinden. Dezelfde aanvraag kan dan veilig opnieuw worden aangeboden zonder een tweede order of betaling te maken.
Ontwerp voor storingen
Werk met time-outs, beperkte retries en een duidelijke eindstatus. Log een correlatie-id waarmee één verwerking door meerdere systemen kan worden gevolgd. Monitor niet alleen of de server bereikbaar is, maar ook of berichten werkelijk aankomen en verwerkt worden.
Test het beheerproces
Controleer vooraf hoe een fout bericht opnieuw wordt aangeboden, wie een sleutel kan intrekken en hoe een wijziging wordt uitgerold. Een koppeling die alleen door de oorspronkelijke ontwikkelaar te herstellen is, is onnodig kwetsbaar.