AttendBeacon
Avaa työtila

Käsitteet

Idempotenssi

Lähetä POST-kutsun mukana Idempotency-Key, niin katkenneen yhteyden jälkeiseen uudelleenyritykseen vastataan ensimmäisellä vastauksella eikä ketään ilmoiteta kahdesti.

Miksi

Yhteys voi katketa sen jälkeen, kun AttendBeacon on ilmoittanut jonkun, mutta ennen kuin koodisi on saanut siitä tiedon. Uudelleen lähetettynä sama POST myöntäisi toisen lipun. Idempotency-Key-avaimen kanssa niin ei käy: toinen pyyntö saa ensimmäisen vastauksen.

Miten

Luo jokaiselle pyynnölle oma avain (UUID on ihanteellinen) ja lähetä se POST-kutsun mukana. Säilytä se pyynnön kanssa, kunnes saat vastauksen, ja lähetä sama avain jokaisessa uudelleenyrityksessä.

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

Mitä säilytetään ja kuinka kauan

Avaimen ensimmäinen vastaus (sen tila, Location ja runko) säilytetään 24 tuntia, ja se annetaan uudelleen jokaiselle pyynnölle, jolla on sama avain, metodi, polku ja runko. Toistetussa vastauksessa on Idempotent-Replayed: true.

TilanneVastaus
Uudelleenyritys pyynnölle, johon on vastattuEnsimmäinen vastaus, jossa Idempotent-Replayed: true
Uudelleenyritys, kun ensimmäistä käsitellään vielä409 idempotencyKeyInUse, jossa Retry-After: 1
Sama avain eri metodilla, polulla tai rungolla422 idempotencyKeyReused: käytä uudelle pyynnölle uutta avainta
Yli 255 merkin tai välilyöntejä sisältävä avain400 invalidIdempotencyKey
Ensimmäinen pyyntö epäonnistui AttendBeaconin päässä (5xx)Mitään ei säilytetä, joten uudelleenyritys käsitellään alusta

Avain kuuluu sen lähettäneelle API-avaimelle: kaksi integraatiota ei voi törmätä. Säilytetyissä vastauksissa voi olla henkilön nimi; kun henkilö poistaa tietonsa, häntä koskevat vastaukset poistetaan myös.

Mitkä kutsut

Jokainen POST ottaa vastaan Idempotency-Key-avaimen: ilmoittautuminen, lippujen myöntäminen, peruminen, sisäänkirjaus sekä tapahtumien, ohjelmaosuuksien, alennuskoodien ja webhookien luominen. PATCH, PUT ja DELETE ovat luonnostaan turvallisia toistaa; PATCH ottaa sen sijaan If-Match-otsakkeen, jotta välissä tehtyä muutosta ei kirjoiteta yli (Virheet, preconditionFailed).

Oppaat ja tämä sivusto ovat omalla kielelläsi. API-viiteoppaan omat kuvaukset ovat englanniksi, kuten itse rajapintakin.