O que torna um endpoint idempotente
Pergunta
O que significa um endpoint de API ser idempotente, e por que isso importa em produção?
Resposta esperada
Um endpoint idempotente produz o mesmo resultado final não importa quantas vezes a mesma requisição seja repetida — chamar uma vez ou dez vezes tem o mesmo efeito no estado do sistema. GET, PUT e DELETE são idempotentes por definição no HTTP; POST geralmente não é (criar um recurso duas vezes cria dois recursos). Isso importa porque, em produção, requisições falham no meio do caminho (timeout, retry de cliente, retry automático de fila) — se o endpoint não for idempotente, um retry seguro do cliente pode duplicar uma cobrança, um pedido ou um envio de email.
Por que perguntam isso
Boa resposta cita um exemplo concreto de dano (cobrança duplicada) e como resolver POST não-idempotente na prática: um idempotency key enviado pelo cliente.