Idempotency-Key. Cada rota se torna segura para repetir do seu próprio jeito.
Posts, stories e vagas
Toda criação exige umclient_ref escolhido por você. O mesmo client_ref com o mesmo corpo responde 200 com o id guardado e replayed: true, e não cria nada; com outro corpo, responde 409 conflict com o motivo client_ref_reused. Veja como repetir sem risco.
Uma alteração ou um encerramento de vaga, e toda remoção, podem ser repetidos: a vaga termina no mesmo estado, e uma remoção que já aconteceu responde 404 not_found.
Totais de voo
PUT /v1/partner/grants/{grant_id}/flight-totals envia um estado completo, não uma alteração, e o as_of torna a repetição segura:
as_ofé obrigatório. Ele indica o instante do estado do logbook, em RFC 3339, e é comparado até o microssegundo.- Ele não pode estar mais de 5 minutos à frente do relógio do servidor. Um
as_ofposterior a isso é recusado com400 invalid_request. - Enviar de novo o mesmo
as_ofe os mesmos totais, por exemplo depois de perder a resposta, responde200e não aplica nada, enquanto esse envio ainda for o último envio aceito do grant. - Depois que um envio mais novo é aceito, a mesma repetição responde
409 conflictcom o motivostale_totals. O mesmo vale para qualquer envio cujoas_ofseja anterior ao último aceito. Nada é aplicado. Envie o estado atual do logbook. - Uma repetição é reconhecida pelo
as_ofe pelos totais que ela soma, não pelos bytes: dois corpos diferentes enviados com o mesmoas_ofque somam os mesmos totais são o mesmo envio.
200 mesmo dentro da janela, um as_of anterior recebe 409 stale_totals, e só um envio novo dentro da janela responde 429 push_throttled.
O MyPilotIndex eleva cada coluna de horas ao valor do logbook quando ele é maior e nunca diminui uma coluna, então um envio repetido não pode somar tempo duas vezes.
Troca de código
Um código funciona uma única vez. Trocá-lo de novo, depois de perder a resposta, responde400 invalid_request com o motivo invalid_grant, como no OAuth. Reinicie o consentimento para obter um novo código.

