4 подписчика
Идемпотентность в API
Это когда при повторных вызовах одного и того же метода API система меняет своё состояние один раз. Другими словами, это нужно предотвращения дублирования данных.
Почему это важно - вам точно не понравится, если с вашего счёта деньги за покупку спишутся несколько раз.
HTTP методы GET, PUT, DELETE формально считаются идемпотентными, тогда как POST и PATCH нет. Это не означает, что вы не можете сделать GET неидемпотентным, а POST идемпотентным. Но это то, на что полагается множество программ, например, прокси-серверы могут не повторять POST и PATCH запросы при ошибках, тогда как GET и PUT могут повторить.
Откуда берутся повторные запросы.
При долгой обработке запроса пользоатель может подумать, что приложение подвисло, грохнуть его и повторить операцию, сеть может отвалиться до получения ответа от сервера, д
Как обеспечивается.
- Ключ идемпотентности - уникальный идентификатор, присваиваемый КЛИЕНТОМ каждому запросу, т.е. когда клиент посчитал, что его запрос не выполнен и он хочет его повторить, то посылает запрос с тем-же самым ключом идемпотентности.
- Синхронизация списка операций/заказов на стороне клиента и сервера через версионирование этого списка.
- В каких-то случаях может понадобиться Soft Delete
Полезные ссылки:
1 минута
23 октября 2024