Редко попадаются хорошие статьи на русском — то конкретики нет, то уровень не выдержан, то вообще творчество копирайтера или "редактора блога", где все термины перепутаны, "волны перекатывались через мол и падали вниз стремительным домкратом". 80% статей я вообще не могу читать, такая там чушь. Читаю поэтому в основном стандарты, первоисточники и научные статьи.
И вот на этом фоне встречаются настоящие жемчужины, грех про них не рассказать. Вот, например, статья Яндекса про идемпотентность вызовов API на примере приложения такси. Тут всё прекрасно: и сторителлинг, и погружение в нюансы на понятном примере, и упаковка разных тем в одной статье. Потому что это она только называется "об идемпотентности" (то есть — об идентичных ответах API при нескольких идентичных вызовах), а на самом деле там говорится:
✅ про собственно идемпотентность
✅ про возможные ошибки связи (сервер не отвечал, сервер тормозил и случился таймаут, из-за разрыва связи не пришел ответ сервера и т.п.)
✅ про гонку параллельных запросов к БД
✅ про коды ошибок http (для чего применять не только 200, 403 и 404, но и другие, например, 410)
✅ про дубли (ошибка) и двойные заказы с одного адреса (нормальное поведение)
✅ про проксирование в запросах (и как это связано с идемпотентностью)
✅ про обработку таймаутов сервера и БД
✅ про то, как сделать POST идемпотентным и при чем тут токены
✅ про использование пользовательских сценариев для проектирования и проверки логики API
✅ про подсматривание хороших решений в других API (насмотренность при проектировании API очень важна!)
✅ про идемпотентность операций изменения и удаления
✅ про взаимодействие с внешними сервисами
✅ и даже немного про очереди сообщений и стратегии доставки ("как минимум один раз" или "как максимум один раз")
В общем, не статья, а клад! Рекомендую её теперь всем участникам нашего курса по интеграциям, в качестве примера — на что обращать внимание при проектировании интеграций и что из этого мог бы продумать аналитик, чтобы всё это предусмотреть заранее, а не узнавать из обращений в службу поддержки.
И вот на этом фоне встречаются настоящие жемчужины, грех про них не рассказать. Вот, например, статья Яндекса про идемпотентность вызовов API на примере приложения такси. Тут всё прекрасно: и сторителлинг, и погружение в нюансы на понятном примере, и упаковка разных тем в одной статье. Потому что это она только называется "об идемпотентности" (то есть — об идентичных ответах API при нескольких идентичных вызовах), а на самом деле там говорится:
✅ про собственно идемпотентность
✅ про возможные ошибки связи (сервер не отвечал, сервер тормозил и случился таймаут, из-за разрыва связи не пришел ответ сервера и т.п.)
✅ про гонку параллельных запросов к БД
✅ про коды ошибок http (для чего применять не только 200, 403 и 404, но и другие, например, 410)
✅ про дубли (ошибка) и двойные заказы с одного адреса (нормальное поведение)
✅ про проксирование в запросах (и как это связано с идемпотентностью)
✅ про обработку таймаутов сервера и БД
✅ про то, как сделать POST идемпотентным и при чем тут токены
✅ про использование пользовательских сценариев для проектирования и проверки логики API
✅ про подсматривание хороших решений в других API (насмотренность при проектировании API очень важна!)
✅ про идемпотентность операций изменения и удаления
✅ про взаимодействие с внешними сервисами
✅ и даже немного про очереди сообщений и стратегии доставки ("как минимум один раз" или "как максимум один раз")
В общем, не статья, а клад! Рекомендую её теперь всем участникам нашего курса по интеграциям, в качестве примера — на что обращать внимание при проектировании интеграций и что из этого мог бы продумать аналитик, чтобы всё это предусмотреть заранее, а не узнавать из обращений в службу поддержки.