Какой код статуса более подходит для случая, когда отношения не существуют?404 против 200 для относительных объектов, RESTful
Например, /articles/1/comments/4
с этим вызовом вы получите commentID
4 от articleID
1. Но что, если commentID
-не существует в этом отношении, что должно API вернулось, 404
или 200
?
EDIT: Позвольте пояснить, что я имел в виду.
Дело в том, что вы можете интерпретировать 404
как ресурс, не существующий с другой точки зрения, например: /articles/1/builders/3
. У вас нет такого маршрута в вашем приложении! У вашего приложения действительно есть обработчик для такого URL-адреса. Но /articles/1/comments/4
. У вас есть такой маршрут в приложении, у вас есть обработчик (контроллер). И да, я знаю, что этот URL отражает отношения между комментариями и статьями, и вот почему это сложно. Потому что комментарий с ID
4 может существовать в вашем DB
, даже если он не относится к статье. Тогда, если у вас есть такой маршрут в приложении, вы можете сказать, что с точки зрения http-протокола у вас есть такой ресурс, но на основе вашей логики приложения вы можете сказать, что такой комментарий не относится к указанной статье.
Зачем вам возвращаться 200? (И почему мы получаем 20 _ «Какой код или глагол статуса HTTP для использования в ситуации $ RESTy» в день, нет ли для этого окончательного руководства?) – CodeCaster
И с каким контентом? – Opal