was successfully added to your cart.

Корзина

If API.Request() == error than retry

Очевидно, но как часто я встречаю данное упущение: если вы по API обращаетесь в сторонние сервисы, например Google, Intercom, Stripe и так далее, готовтесь, что они часто будут отвечать вам ошибками.

И я имею ввиду не ошибками, связанных с неправильным построением запроса, а ошибками с их серверами, поэтому ловить 502 — это норма.

Есть несколько путей решения проблемы, но самый простой из них — это retry.

Чаще всего он выполнен в формате библиотеки, которая позволяет задать количество попыток, в случае ошибки, точку break и success. В таком случае, когда вы ловите ошибку, не связанную с неправильно составленным запросом, вы просто делаете повторный вызов.

Единственное, о чем стоит подумать заранее — это кейс, при котором на самом деле запрос дошел и правильно обработался, НО вы получили код 502 или нечто схожее. Такое может произойти, например, из-за reverse proxy, который решил обрубить соединение.

В зависимости от важности вызыва решением данного вопроса могут быть:

  1. Если метод API «чистый», то можно просто еще раз отправить запрос
  2. Делать повторный запрос и ожидать ответа виде ошибки, формата «Ваши изменения уже были применены»
  3. Сделать компенсирующий запрос, который проверит успешность предыдущей операции или точно отменит этот эффект. Бывает рискованно или overkill

Короче

Не забывайте про retry

Гораздо больше контента и развлечений в Telegram-канале