AttendBeacon
Abrir a área de trabalho

Conceitos

Idempotência

Envie um Idempotency-Key com um POST, e uma nova tentativa após uma ligação perdida recebe a primeira resposta em vez de inscrever alguém duas vezes.

Porquê

Uma ligação pode cair depois de a AttendBeacon ter inscrito alguém, mas antes de o seu código o saber. Enviado de novo, o mesmo POST emitiria um segundo bilhete. Com um Idempotency-Key isso não acontece: o segundo pedido recebe a resposta do primeiro.

Como

Crie uma chave sua para cada pedido (um UUID é ideal) e envie-a com o POST. Guarde-a com o pedido até ter uma resposta e envie a mesma chave em cada nova tentativa.

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

O que é guardado, e durante quanto tempo

A primeira resposta a uma chave (o estado, Location e o corpo) é guardada durante 24 horas e devolvida a qualquer pedido com a mesma chave, método, caminho e corpo. Uma resposta repetida traz Idempotent-Replayed: true.

SituaçãoResposta
Uma nova tentativa de um pedido que já foi respondidoA primeira resposta, com Idempotent-Replayed: true
Uma nova tentativa enquanto o primeiro ainda está a ser tratado409 idempotencyKeyInUse, com Retry-After: 1
A mesma chave com outro método, caminho ou corpo422 idempotencyKeyReused: use uma chave nova para um pedido novo
Uma chave com mais de 255 caracteres, ou com espaços400 invalidIdempotencyKey
O primeiro pedido falhou do lado da AttendBeacon (5xx)Nada é guardado, por isso a nova tentativa é tratada de raiz

Uma chave pertence à chave de API que a enviou: duas integrações não podem colidir. As respostas guardadas podem nomear uma pessoa; quando essa pessoa elimina os seus dados, as respostas que a nomeiam também são eliminadas.

Que chamadas

Todos os POST aceitam um Idempotency-Key: inscrever, emitir bilhetes, cancelar, registar entradas, criar eventos, sessões, códigos de desconto e webhooks. PATCH, PUT e DELETE são, por natureza, seguros de repetir; PATCH aceita antes If-Match, para que uma alteração feita entretanto não seja substituída (Erros, preconditionFailed).

Os guias e este site estão no seu idioma. As descrições da própria referência da API estão em inglês, tal como a própria API.