Sobes.tech
Junior — Middle

Можете ли да дадете примери за заявки, които не гарантират идемпотентност?

sobes.tech AI

Отговор от AI

Идемпотентността означава, че повторното извикване на операция с едни и същи параметри няма да промени резултата след първото изпълнение.

Примери за заявки, които не гарантират идемпотентност:

  • POST заявки, които създават нови ресурси: всяко извикване създава нов обект, например създаване на нов потребител.
  • Заявки, които увеличават брояч: например incrementCounter() — повторното извикване ще увеличи стойността отново.
  • Заявки, които причиняват странични ефекти: изпращане на уведомление, извършване на транзакция по плащане.

Пример за неидемпотентна заявка в REST API:

POST /orders
{
  "product_id": 123,
  "quantity": 1
}

Всяко извикване ще създаде нова поръчка, затова повторната заявка ще промени състоянието на системата.