Пост полезен и тем кто начинает, чтобы в целом понять, что это и опытным вспомнить, что этого зверя надо учитывать при проектировании API методов.
✔ Идемпотентность – это когда вы делаете несколько одинаковых действий и при этом получаете один и тот же результат.
Если проще: нажимаешь кнопку 100 раз, а результат остаётся тем же, как и при первом нажатии.
➖➖➖
Что будет, если забыть сделать запрос идемпотентным?
У вас могут возникнуть проблемы в тех местах, где тонко.
Вообщем везде, где предполагается создание 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 и ответит один раз, даже если кнопка будет нажата несколько раз.
➖➖➖
Вы часто продумываете этот кусок на проекте?
Делитесь в комментариях
Начать дискуссию