Clé d'idempotence
Principe général
L'API permet d'associer une clé d'idempotence (idempotency_key) à une annonce (Ride) afin d'éviter de créer plusieurs fois la même annonce en cas de retry côté client (problème réseau, timeout, etc.).
Lors de la création d'une annonce, si une autre annonce non supprimée du même propriétaire (owner) existe déjà avec la même idempotency_key, la création est rejetée avec une erreur métier (idempotency_key_already_used).
Comment utiliser la clé d'idempotence côté client
- Générer une clé d'idempotence unique par tentative fonctionnelle de création d'annonce (par exemple un UUID v4 ou un identifiant de commande interne à votre système ).
- Envoyer cette clé dans le payload de création de l'annonce, dans l'attribut
idempotency_key. - En cas de doute sur le résultat d'un appel (timeout, 5xx, coupure réseau), réexécuter exactement le même appel avec la même
idempotency_key:- si l'annonce a déjà été créée, l'API retournera une erreur
idempotency_key_already_usedet aucune nouvelle annonce ne sera créée ; - si l'appel initial n'a pas abouti à une création, l'appel de retry créera l'annonce normalement.
- si l'annonce a déjà été créée, l'API retournera une erreur
Cas particuliers
- Annonce supprimée (
state = removed) :- une annonce supprimée n'est pas prise en compte dans la vérification d'unicité (voir
Ride#ride_with_same_idempotency_keyqui ignore les ridesremoved) ; - cela permet, si besoin, de réutiliser une
idempotency_keypour recréer une annonce après suppression.
- une annonce supprimée n'est pas prise en compte dans la vérification d'unicité (voir