REST API - статус HTTP для частичного ответа

Я сталкиваюсь со следующим случаем: у меня есть 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 ответ

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

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

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

Другие вопросы по тегам