Пост полезен и тем кто начинает, чтобы в целом понять, что это и опытным вспомнить, что этого зверя надо учитывать при проектировании API методов. 
Пост полезен и тем кто начинает, чтобы в целом понять, что это и опытным вспомнить, что этого зверя надо учитывать при проектировании API методов. 

Идемпотентность – это когда вы делаете несколько одинаковых действий и при этом получаете один и тот же результат.

Если проще: нажимаешь кнопку 100 раз, а результат остаётся тем же, как и при первом нажатии.

➖➖➖

Что будет, если забыть сделать запрос идемпотентным?

У вас могут возникнуть проблемы в тех местах, где тонко.

Вообщем везде, где предполагается создание 1 объекта, а получается больше. 
Вообщем везде, где предполагается создание 1 объекта, а получается больше. 

➖➖➖

Но давайте на примере, чтобы было понятнее

Примерно так:

orderID: 101, producttype: pizza, name: Маргарита, Quantity: 1 orderID: 102, producttype: pizza, name: Маргарита, Quantity: 1

Надеюсь, что стало понятнее.

➖➖➖

Например:

POST /orders Headers: Idempotency-Key: abc123 Body: { "item": "Pizza", "quantity": 1 }

В этом случае сервер распознаёт запрос по идентификатору, который указан в Idempotency-Key и ответит один раз, даже если кнопка будет нажата несколько раз.

➖➖➖

Вы часто продумываете этот кусок на проекте?
Делитесь в комментариях

Начать дискуссию