Каковы лучшие практики обработки ответов на ошибки API?
Лучше всего обрабатывать такие ошибки API с помощью try
и catch
или ответ API должен быть похож на вызов API Google, Facebook и Microsoft
Как правило, не существует такого понятия, как стандартный API, поэтому не существует и лучшей практики как таковой. Если вы имеете дело с несколькими API в своем приложении, то в итоге у вас будет как минимум несколько вариантов того, что вы проверяете и как адаптируете.
В зависимости от того, насколько терминальным является сбой и где он происходит в их стеке обработки, может быть установлен статус HTTP, а также вы можете получить HTML, JSON или XML тело с более подробной информацией (независимо от того, что вы думали получить).
API также случайным образом выходят из строя при преходящих ошибках, поэтому для надежной работы вашего кода вам, вероятно, понадобится цикл повторной попытки.
Они также дросселируют, поэтому поможет какой-то обработчик обнаружения/отката/повтора (детали зависят от API, как всегда).
Псевдокод:
retry loop {
request
check connection (network errors)
check HTTP status code
check body
parse body if valid and extract errors
if terminal failure exit (authentication/authorisation etc)
if throttling backoff
}