REST API - статус HTTP для частичного ответа
Я сталкиваюсь со следующим случаем: у меня есть API, который позволяет мне получить уникальный ресурс:
GET myapi/resource_id
Если этот ресурс не существует, я возвращаю 404
Код статуса HTTP.
Этот API также позволяет получить несколько ресурсов с помощью одного и того же запроса:
GET myapi/resource_id1,resource_id2
Какой код статуса HTTP я должен отправить обратно, если один из двух ресурсов не существует?
200 с объяснением в JSON в ключе ошибки
206, который позволяет быть более явным с объяснением в JSON в ключе ошибки
Код 400 / 404, но это не хорошо, потому что API все еще возвращает одну из двух данных
другое решение?
Спасибо за помощь.
1 ответ
Я думаю, что здесь есть 2 варианта.
- Отправьте обратно 200 и даже не упомяните пропавший ресурс.
- Отправь обратно 404 с пустым телом.
206 - для запросов диапазона, 400 - для некорректных запросов, поэтому ни один из них здесь не применим.