Re[4]: Возврат ошибок в API
От: AK107  
Дата: 05.09.19 17:23
Оценка: +1 -1
Здравствуйте, RushDevion, Вы писали:

RD>2. 200 vs 201 (Created)

RD>POST /api/payments { id, amount, operationType }
RD>ID платежа определяет клиент (скажем, это GUID).
RD>А мы со своей стороны гарантируем идемпотентность операции создания, т.е.
RD>мы говорим: "если ты будешь пытаться создать платеж с одним и тем же id много раз, то для нас это нормально".
RD>По HTTP протоколу POST запросы не идемпотентные, но это бывает нужно, если, например у нас слабый канал и клиент реализует какую-то политику ретрая.
RD>Или клиент пропихивает платежи из своей системы в нашу в несколько потоков/процессов.
RD>В этом случае:
RD>201 (Created) — клиент уверен, что это именно он создал платеж. Можно, например, обновлять балансы в своей локальной системе.
RD>200 OK — такой платеж уже есть, но его создали не мы. Просто игнорируем.

это явный 409 Conflict. и ни в коем случае не 200 ОК.