Idempotence

O termo "Idempotência" é frequentemente usado na programação para descrever uma operação que pode ser aplicada várias vezes sem alterar o resultado. Por exemplo, uma função que simplesmente incrementa um número por um seria considerada idempotente, porque não importa quantas vezes seja aplicada, o resultado será sempre o mesmo.

Em contraste, uma função que multiplica um número por dois não seria idempotente, porque cada vez que for aplicada, o resultado será duplicado.

O termo "Idempotência" também pode ser usado de forma mais geral para descrever qualquer situação onde uma operação pode ser aplicada várias vezes sem alterar o resultado. Qual é a diferença entre os métodos idempotente e seguro HTTP? A principal diferença entre métodos idempotentes e métodos HTTP seguros é que métodos idempotentes podem ser repetidos com segurança enquanto métodos seguros só podem ser executados uma vez.

Métodos idempotentes, tais como GET e PUT, podem ser executados com segurança várias vezes sem alterar o resultado. Isto porque estes métodos apenas recuperam ou modificam dados, e não executam quaisquer outros efeitos secundários.

Métodos seguros, como POST e DELETE, só podem ser executados uma única vez. Isto porque estes métodos podem criar ou apagar dados, o que pode causar resultados inesperados se executados várias vezes. O patch HTTP é idempotente? Sim, o patch HTTP é idempotente. Isto significa que várias solicitações idênticas terão o mesmo efeito que uma única solicitação.

Como você mostra que algo é idempotente?

Uma operação idempotent é aquela que pode ser aplicada várias vezes sem alterar o resultado. Por exemplo, adicionar 0 a um número é idempotent:

0 + x = x

O resultado é o mesmo quer você adicione 0 uma vez ou várias vezes. Da mesma forma, multiplicar um número por 1 é idempotente:

1 * x = x

Em contraste, adicionar 1 a um número não é idempotente:

1 + x ≠ x

O resultado é diferente se você adicionar 1 uma vez ou várias vezes.

Para mostrar que uma operação é idempotente, você precisa mostrar que aplicar a operação várias vezes dá o mesmo resultado que aplicá-la uma vez. Por exemplo, para mostrar que a adição de 0 é idempotente, você precisaria mostrar isso:

0 + x = x

Você pode fazer isso mostrando que o lado esquerdo é igual ao lado direito. Quão idempotente é o método put? O método put é idempotente porque substitui todo o recurso no URL especificado por um novo recurso. Se o URL especificado não existir, o método put irá criar um novo recurso. Qual comando HTTP é idempotent? O comando HTTP que é idempotent é o comando GET.