404 Не найдено или плохой запрос?
Скажем, что у нас есть следующий вызов REST:
GET api/companies/5
(получите компанию с идентификатором 5)
Если компания "5" не существует, мы обычно возвращаем ответ 404 Not Found
.
Но теперь позвольте принять этот вызов:
GET api/companies/5/invoices/10
(получите счет 10 от компании 5)
Теперь, если компания '5' не существует, мы все еще возвращаем 404 Not Found
? Или должен быть возвращен 404, если внешний ресурс не может быть найден (счет-фактура 10 в этом случае).
Может ли быть Bad Request
лучший вариант?
Ответы
Ответ 1
404 - ваш лучший ответ. Согласно HTTP RFC, http://www.ietf.org/rfc/rfc2616.txt, 400 Bad Request означает:
Запрос не мог быть понят сервером из-за неправильного синтаксиса.
В то время как 404 состояния:
Сервер не нашел ничего, соответствующего запросу-URI.
Весь URI - ваш идентификатор ресурса, и вы не найдете соответствующий ресурс для этого конкретного идентификатора.