Что такое идемпотентность

«Что такое идемпотентность» — вопрос из категории API и интеграции, который задают на 40% собеседований Системный Аналитик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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

Пример:
В REST API метод PUT идемпотентен:

PUT /users/1
Content-Type: application/json
{"name": "Alice"}

Независимо от того, сколько раз выполнить этот запрос, пользователь с id=1 всегда будет иметь name: "Alice".

Нюансы:

  • В HTTP GET, PUT, DELETE — идемпотентны, а POST — нет.
  • В бизнес-логике важно учитывать идемпотентность для предотвращения дублирования (например, платежей).

Видео-ответы