REST API - статус HTTP для частичного ответа - PullRequest
0 голосов
/ 13 февраля 2019

Я сталкиваюсь со следующим случаем: у меня есть API, который позволяет мне извлекать уникальный ресурс:

GET myapi/resource_id

Если этого ресурса не существует, я возвращаю 404 код состояния HTTP.

Этот API-интерфейс также позволяет получать несколько ресурсов с помощью одного и того же запроса:

GET myapi/resource_id1,resource_id2

Какой код состояния HTTP я должен отправить обратно, если один из двух ресурсов не существует?

  1. 200 с объяснением в JSON в ключе ошибки

  2. 206, что позволяет быть более явным с объяснением в JSON в ключе ошибки

  3. 400/404, но это не нормально, потому что API все еще возвращает одну из двух данных

  4. другое решение?

Спасибо за помощь.

1 Ответ

0 голосов
/ 13 февраля 2019

Я думаю, что здесь есть 2 варианта.

  • Отправьте обратно 200 и даже не упомяните отсутствующий ресурс.
  • Отправьте назад 404 с пустым телом.

206 - для запросов диапазона, 400 - для некорректных запросов, поэтому ни один из них здесь не применим.

...