A API oferece suporte à idempotência para retentar requisições de maneira segura sem executar acidentalmente a mesma operação mais de uma vez. Esse recurso é útil quando uma chamada de API é interrompida em trânsito antes do recebimento do response.
Por exemplo: se, por um problema de conexão de rede, uma requisição para criar uma proposta não receber uma resposta, é possível retentar a ação utilizando a mesma chave idempotente. Dessa forma, garantimos que não haverá mais de uma proposta criada.
Para realizar uma requisição idempotente, forneça uma chave adicional de idempotência no header do request - Idempotency-Key: <key>
.
Uma chave de idempotência é um valor único gerado pelo cliente-servidor. Ela é utilizada pela aplicação para reconhecer retentativas de uma mesma requisição. Cabe a quem consome a API decidir como criar essas chaves, mas sugerimos o uso de V4 UUIDs ou outra string aleatória com entropia suficiente para evitar colisões.
Todas as requisições de método POST
aceitam chaves de idempotência. Já nas solicitações GET
e DELETE
o envio dessas chaves não têm efeito e deve ser evitado, já que esses requests são idempotentes por definição.