...
Idempotentie is een eigenschap die dicteert dat het mogelijk is om een operatie veilig meerdere keren opnieuw uit te voeren, waarbij elke keer hetzelfde resultaat wordt verkregen, en zonder dat dit enige extra bijwerkingen in het systeem heeft veroorzaakt.
Voorbeeld scenario
Een Het aanmaken van een dossier faalt omwille van een technisch probleem (bvb een timeout). De client heeft in dit scenario geen antwoord ontvangen en heeft dus geen zekerheid dat het dossier is aangemaakt door de API. Als de client dezelfde request hierna opnieuw verstuurt zal het dossier potentieel 2 keer aangemaakt worden door de API.
...
De idempotentie sleutels moeten uniek zijn voor alle requesten naar hetzelfde API-pad. We stellen voor dat clients deze vereiste implementeren door het gebruik van UUID versie 4 (random) voor de als waarde van de Idempotency-Key
header.
Geldigheid
De Een idempotentie sleutels sleutel en het bijhorende resultaat worden wordt gedurende 24u bijgehouden. Als deze tijdsspanne is verstreken worden ze verwijderd uit het systeem.
Aanbevelingen voor het opnieuw versturen van requesten
De onderstaande Onderstaande tabel toont enkele veelvoorkomende statuscodes die u kunt krijgen op idempotente API-requesten en geeft aanbevelingen voor nieuwe pogingen.
Statuscodes | Aanbeveling | Opmerking |
---|---|---|
200, 201 | NIET opnieuw proberen | De oorspronkelijke request is succesvol voltooid. Nieuwe pogingen zullen ook succesvol terugkeren. |
400-serie | NIET opnieuw proberen | Er is een probleem met de request:
Als de request betrekking heeft op een resource die achterliggend kan wijzigen, kan het opnieuw proberen van de request mogelijk slagen. |
500-serie | WEL opnieuw proberen | De fout wordt veroorzaakt door een serverprobleem en is over het algemeen van voorbijgaande aard. Herhaal het verzoek met een geschikte uitstelstrategie. |
Exponentiële uitstelstrategie
...