Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

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

Het aanmaken van Een client probeert via de API een dossier aan te maken, maar dit faalt omwille van een technisch probleem (bvb een timeout). De client heeft in dit scenario geen antwoord ontvangen van de API 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.

Idempotente HTTP-werkwoorden

De HTTP-specificatie schrijft voor dat de werkwoorden GET, PUT en DELETE inherent idempotent zijn. De API respecteert deze richtlijnen en het is veilig om requesten met deze werkwoorden een aantal meerdere keren opnieuw uit te voeren.

...

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:

  • Het bevat een parameter of parametercombinatie parameter combinatie die niet geldig is.

  • Er wordt gebruik gemaakt van een actie waarvoor u geen machtigingen heeft.

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 uitstelstrategieuitstel strategie.

Exponentiële uitstelstrategieuitstel strategie

We stellen voor dat clients gebruik maken van een exponentiële uitstelstrategie uitstel strategie bij het opnieuw proberen van requesten. Vertragingen tussen nieuwe pogingen worden in de loop van de tijd steeds langer in plaats van vast of willekeurig te zijn. Deze strategie geeft ruimte aan tijdelijke problemen om zichzelf op te lossen en voorkomt tegelijkertijd een overbelasting van de API.

...