DevGuideTK
← Trilha Backend

Idempotência

Como tornar seguras as operações repetidas quando a rede falha no meio do pedido.

Uma operação é idempotente quando executá-la várias vezes tem o mesmo efeito que executá-la uma vez. Em APIs, isso garante que repetir um pedido não cobre, crie ou envie duas vezes.

Redes falham no meio do caminho, e clientes tentam de novo. Sem idempotência, cada nova tentativa de um pagamento é uma cobrança a mais.

  • GET, PUT e DELETE já são idempotentes por definição; POST não é.
  • Uma chave de idempotência, enviada pelo cliente, identifica as repetições do mesmo pedido.
  • A segunda chegada da mesma chave recebe a resposta guardada da primeira.
  • Conferir "já existe?" antes de gravar não funciona com pedidos simultâneos.