Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Delete idempotente

Acredito que não entendi exatamente o que significa a idempotência.
Imaginei que o delete não fosse idempotente pois o resultado de enviar 2x a mesma requisição é diferente. Da primeira vez, vai deletar o registro, da segunda vez vai retornar que não encontrou o registro para deletar (no caso de tratar isso, claro, pois no exercício/aula não foi tratado, sempre devolve "Ok").
Então significa que a idempotência é do ponto de vista do banco de dados e não da requisição, é isso?
2 respostas
solução!

Oi Agatha,

A idempotência é sobre a requisição mesmo,no caso do DELETE quer dizer que a única operação que acontece com aquela requisição é a remoção de um determinado recurso. Se você mandar a requisição 2x, ele tentará remover o mesmo recurso duas vezes, não importa que as respostas sejam diferentes.

Um DELETE que não fosse idempotente seria um DELETE que removesse por exemplos os 10 itens mais recentes. Como os 10 itens poderiam não ser os mesmos, a operação não seria idempotente pois mexe com recursos diferentes.

Abraço!

opa, boa dúvida... pensa assim: se vc mandar deletar o mesmo recurso 2x, na segunda, o estado do servidor muda?

Se a resposta for não, quer dizer que ele é idempotente. Se vc pedir para deletar um recurso que não já foi deletado, independente do status da resposta, o estado do servidor não é alterado.

Por isso que o put também é...