Http Status для частичного ответа в случае, если API выполняет вызовы к нескольким API - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть API, задачей которого является агрегирование ресурсов, полученных путем вызова нескольких других API, а затем выдача агрегированного ответа клиенту. В настоящее время даже в случае сбоя одного или нескольких зависимых вызовов API я go опережаю и собираю ответы от других зависимых API, а затем выдаю их клиенту со статусом 2xx. В случае сбоя всех зависимых вызовов API я все равно выдаю 2xx с пустым списком

В случае сбоя одного или нескольких зависимых вызовов API, я хочу дать указание клиенту. Я думал об использовании HTTP-кода 206 . Что было бы лучшим подходом для обработки этого сценария. Правильный подход - выдавать 206 с именами зависимых сервисов, которые не смогли выдать 2xx как часть заголовка. Если да, то как должен называться этот заголовок?

1 Ответ

1 голос
/ 25 февраля 2020

Я думал об использовании HTTP-кода 206.

Не могу обещать, но это кажется очень плохой идеей; см. RF C 7233

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

Если клиент не отправил вам запрос диапазона (подробности см. в RF C 7233), тогда я не думаю, что в ответе, как если бы он был, есть какая-то выгода. Компоненты общего назначения могут запутаться.

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

(Аналогия - в Интернете, код состояния и заголовки для браузера (общего назначения). Тело ответа - для человека.)

200 OK , вероятно, вы хотите использовать здесь; с «представлением статуса действия» в полезной нагрузке.

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