devterview_$ iniciar simulação

O que torna um endpoint idempotente

MédioPlenoAPIs

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.

#apis#idempotencia
publicidade

Perguntas de acompanhamento

Relacionadas