AttendBeacon
Open de werkruimte

Concepten

Idempotentie

Stuur een Idempotency-Key mee met een POST, dan krijgt een herhaling na een verbroken verbinding het eerste antwoord, in plaats van dat iemand twee keer wordt geregistreerd.

Waarom

Een verbinding kan wegvallen nadat AttendBeacon iemand heeft geregistreerd, maar voordat je code dat heeft gehoord. Stuur je dezelfde POST opnieuw, dan zou er een tweede ticket worden uitgegeven. Met een Idempotency-Key gebeurt dat niet: het tweede verzoek krijgt het antwoord van het eerste.

Hoe

Maak voor elk verzoek een eigen sleutel (een UUID is ideaal) en stuur die mee met de POST. Bewaar hem bij het verzoek tot je een antwoord hebt, en stuur bij elke herhaling dezelfde sleutel mee.

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" }'

Wat er wordt bewaard, en hoe lang

Het eerste antwoord op een sleutel (de status, Location en de body) wordt 24 uur bewaard en opnieuw gegeven aan elk verzoek met dezelfde sleutel, methode, hetzelfde pad en dezelfde body. Een herhaald antwoord heeft Idempotent-Replayed: true.

SituatieAntwoord
Een herhaling van een verzoek dat al antwoord kreegHet eerste antwoord, met Idempotent-Replayed: true
Een herhaling terwijl het eerste nog wordt afgehandeld409 idempotencyKeyInUse, met Retry-After: 1
Dezelfde sleutel met een andere methode, een ander pad of een andere body422 idempotencyKeyReused: gebruik een nieuwe sleutel voor een nieuw verzoek
Een sleutel langer dan 255 tekens, of met spaties400 invalidIdempotencyKey
Het eerste verzoek mislukte aan de kant van AttendBeacon (5xx)Er wordt niets bewaard, dus de herhaling wordt opnieuw afgehandeld

Een sleutel hoort bij de API-sleutel die hem verstuurde: twee integraties kunnen elkaar niet in de weg zitten. De bewaarde antwoorden kunnen een persoon noemen; als die persoon de eigen gegevens verwijdert, worden de antwoorden die hem of haar noemen ook verwijderd.

Welke aanroepen

Elke POST neemt een Idempotency-Key: registreren, tickets uitgeven, annuleren, inchecken, en evenementen, sessies, kortingscodes en webhooks maken. PATCH, PUT en DELETE kun je van nature veilig herhalen; PATCH neemt in plaats daarvan If-Match, zodat een tussentijdse wijziging niet wordt overschreven (Fouten, preconditionFailed).

De handleidingen en deze site zijn in jouw taal. De beschrijvingen in de API-referentie zelf zijn in het Engels, de taal van de API.