AttendBeacon
Ouvrir l’espace de travail

Concepts

Idempotence

Envoyez un Idempotency-Key avec un POST : une nouvelle tentative après une connexion perdue reçoit alors la première réponse, au lieu d’inscrire quelqu’un deux fois.

Pourquoi

Une connexion peut tomber après qu’AttendBeacon a inscrit quelqu’un, mais avant que votre code ne l’apprenne. Renvoyé, le même POST émettrait un second billet. Avec un Idempotency-Key, ce n’est pas le cas : la seconde requête reçoit la réponse de la première.

Comment

Générez votre propre clé pour chaque requête (un UUID est idéal) et envoyez-la avec le POST. Conservez-la avec la requête jusqu’à obtenir une réponse, et renvoyez la même clé à chaque nouvelle tentative.

curl -X POST "https://attendbeacon.com/api/v1/events/b3ac0000-0000-4000-8000-000000000001/registrations" \
  -H "Authorization: Bearer $ATTENDBEACON_KEY" \
  -H "Idempotency-Key: 6f1c2a9e-4b7d-4c0f-8e3a-5b9d1c7e0f42" \
  -H "Content-Type: application/json" \
  -d '{ "ticketTypeId": "b3ac0006-0000-4000-8000-000000000001", "firstName": "Anna", "lastName": "de Vries", "email": "anna.devries@example.com" }'

Ce qui est conservé, et combien de temps

La première réponse associée à une clé (son statut, Location et son corps) est conservée 24 heures et renvoyée à toute requête portant la même clé, la même méthode, le même chemin et le même corps. Une réponse rejouée porte Idempotent-Replayed: true.

SituationRéponse
Nouvelle tentative d’une requête qui a reçu une réponseLa première réponse, avec Idempotent-Replayed: true
Nouvelle tentative pendant que la première est encore en cours de traitement409 idempotencyKeyInUse, avec Retry-After: 1
La même clé avec une autre méthode, un autre chemin ou un autre corps422 idempotencyKeyReused : utilisez une nouvelle clé pour une nouvelle requête
Une clé de plus de 255 caractères, ou contenant des espaces400 invalidIdempotencyKey
La première requête a échoué du côté d’AttendBeacon (5xx)Rien n’est conservé : la nouvelle tentative est traitée comme une nouvelle requête

Une clé d’idempotence appartient à la clé API qui l’a envoyée : deux intégrations ne peuvent pas entrer en collision. Les réponses conservées peuvent nommer une personne ; quand cette personne supprime ses données, les réponses qui la nomment sont supprimées aussi.

Quels appels

Chaque POST accepte un Idempotency-Key : inscrire, émettre des billets, annuler, enregistrer une arrivée, créer des événements, des sessions, des codes de réduction et des webhooks. PATCH, PUT et DELETE peuvent être répétés sans risque par nature ; PATCH accepte plutôt If-Match, pour qu’une modification faite entre-temps ne soit pas écrasée (Erreurs, preconditionFailed).

Les guides et ce site sont dans votre langue. Les descriptions propres à la référence de l’API restent en anglais, la langue de l’API elle-même.