GetAnalyst

Идемпотентность и коммутативность API: что это и как применяют на практике

Как повторные запросы API могут привести к сбоям в системе? Почему важно, чтобы результат операций оставался корректным, даже если их порядок выполнения изменится?


Эти вопросы об идемпотентности и коммутативности актуальны для системных аналитиков, которые работают с системами, в которых есть бронирования, заказы или платежи.


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

Презентация к эпизоду: https://getanalyst.ru/podcast/idempotency-and-commutativity-api


1:25 - Проблемы приложений, которые игнорируют идемпотентность и коммутативность в своих API.


3:24 - О принципах работы сетей с пакетной передачей данных.


6:15 - Определение идемпотентности и коммутативности. О проблемах, с которыми столкнулись на проекте из-за несоблюдения этих свойств API. Как защищаться от этих проблем со стороны UI, без изменения API.


11:40 - Ключ идемпотентности и где его использовать в REST API в headers, query или body JSON. Естественный и суррогатный ключ.


18:45 - Инварианты в пользовательских сценариях - о проблемах бизнес-логики из-за которой создаются дубликаты данных в системе.


26:00 - Коммутативность в API.


30:52 - GET, POST, PUT, PATCH, DELETE и их идемпотентность. Почему метод PATCH не идемпотентный, хотя он похож на идемпотентный. Можно ли не идемпотентные методы делать идемпотентными.


42:25 - Подведение итогов и рекомендации.



Ведущая: 
Екатерина Ананьева

Гости:
Елизавета Акманова, Старший системный аналитик в компании UseTech