Re[69]: Идемпотентность POST - хорошая ли практика?
От: Sinclair Россия https://github.com/evilguest/
Дата: 14.10.22 13:46
Оценка: 3 (1) +2
Здравствуйте, ·, Вы писали:

·>А предложенная альтернатива какая? Посылать им хедеры?

Да, совершенно верно. В документации на сервис вы пишете про эти хедеры; в примерах клиентского кода к вашему API вы анализируете эти хедеры в тестовых методах; в клиентских биндингах на C#, Java, Python и Typescript вы прикручиваете интеграцию с лог-сервисами и метриками, в которые заливаете информацию про эти хедеры.
На звонках с разработчиками, которые пилят работу с вашим сервисом, вы объясняете, как важны хедеры с ворнингами — что вы начинаете троттлить тех, кто игнорирует много ворнингов, поэтому крайне желательно встраивать ассерты в интеграционные тесты на их стороне.
Поэтому когда Джон Доу в 2022 году сдаёт модуль интеграции с вами в службу эксплуатации Acme Inc и увольняется навсегда, на той стороне остаётся код, который в далёком 2030 году, когда нынешний API станет устаревшим, зажжот лампочку в дашборде Acme, inc.
И те же люди в Акме, которые звонят Сьюзан "поговори с этими орлами из точка-инк, у них медианный респонс тайм вылез за 700миллисекунд, что за ерунда???", заведут в ихней корпоративной жире (в которую вам, естественно, хода нет) тикет, и этот тикет будет блуждать по очередям и проектам, пока не попадёт к Бобу. Который, собственно, и починит проблему — причём когда он попробует собрать новую версию своего клиента, который ходит к вам, ему CI/CD не даст сделать коммит — интеграционные тесты в других местах API загорятся красненьким, потому что в каждом из них написано Assert.DoesNotContain("X-Api-Warning", response.Headers).
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.