Idempotence
Kā padarīt atkārtotu mēģinājumu drošu.
Kā tas darbojas
Sūtiet Idempotency-Key uz POST /emails, POST /emails/batch vai POST /templates/{id}/send. Neviens cits maršruts to nelasa. Pirmais izsaukums izdara darbu, un atkārtojums ar to pašu atslēgu atgriež identisko ziņojumu. POST /emails papildus iestata Idempotency-Replayed: true, pakešu izsaukums katram elementam ziņo replayed, bet veidnes sūtījums ziņo to atbildes pamattekstā un atbild ar 200, nevis 202. Pieteikums tiek noformēts kā pats datubāzes ieraksts, tāpēc divi pieprasījumi, kas sacenšas ar vienu atslēgu, abi uzvarēt nevar.
Idempotency-Key: invoice-8812Atslēgas atkārtota izmantošana ar citu pieprasījuma saturu ir 422 idempotency_key_reuse, nevis klusa atkārtošana. Gandrīz vienmēr tas nozīmē, ka atslēga atvasināta no kaut kā nepietiekami unikāla, un atkārtoti nosūtīt kādam ziņojumu, ko viņš nav sūtījis, ir sliktāk nekā atteikt.
Paketē atslēga tiek paplašināta katram elementam, tāpēc viena atslēga uz simt ziņojumiem tos nesaspiež pirmajā.