Какой статус http вернуть, если сервис отсутствует для возврата данных - PullRequest
0 голосов
/ 08 мая 2018

У меня есть служба REST 'A', которая для выполнения задачи использует внешнюю службу 'B'.

Если «В» не доступно в то время, когда «А» нужно для выполнения запроса, какой статус я должен вернуть?

Подходит ли 503 в этом случае? В некотором смысле мы можем сказать, что услуга «А» недоступна, поскольку она не может выполнять всю работу, однако в действительности только зависимая служба недоступна.

1 Ответ

0 голосов
/ 30 мая 2018

С точки зрения потребителя API не имеет значения, недоступен ли ваш сервер или вышестоящий сервер, который вы используете . Вы можете вернуть либо 500 или 503:

6.6.1. 500 Внутренняя ошибка сервера

Код состояния 500 (Внутренняя ошибка сервера) указывает, что сервер столкнулся с неожиданным состоянием, которое помешало ему выполнить запрос.

6.6.4. 503 Сервис недоступен

Код состояния 503 (служба недоступна) указывает, что сервер в настоящее время не может обработать запрос из-за временной перегрузки или плановое обслуживание, которое, вероятно, будет облегчено после некоторого задержка. Сервер МОЖЕТ отправить поле заголовка Retry-After предложить соответствующее количество времени для клиент подождет, прежде чем повторить запрос. [...]

Например, если операция доступна только для чтения, вы можете вернуть некоторые кэшированные данные / данные по умолчанию, чтобы избежать ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...