2015-10-01 4 views
2

Какой код статуса более подходит для случая, когда отношения не существуют?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-протокола у вас есть такой ресурс, но на основе вашей логики приложения вы можете сказать, что такой комментарий не относится к указанной статье.

+2

Зачем вам возвращаться 200? (И почему мы получаем 20 _ «Какой код или глагол статуса HTTP для использования в ситуации $ RESTy» в день, нет ли для этого окончательного руководства?) – CodeCaster

+0

И с каким контентом? – Opal

ответ

4

Это должно быть 404 (конечно). Вы запросили определенный ресурс с идентификатором, равным 4, и не нашли его.

+0

Я знаю, но это очень сложная ситуация, потому что 404 означает, что ресурс не существует, но он существует! и даже такой идентификатор комментария существует, он просто не принадлежит указанной статье. Например, если вы запрашиваете 'articles/1/comment/4' да, это 404, потому что у нас нет такого маршрута вообще. Я пытаюсь сказать, если вы посмотрите на api из разных представлений (транспорт, приложение), вы можете интерпретировать коды состояния по-разному. – user1016265

+0

В этом случае он должен возвращать '404', но'/comments/4' должен возвращать 200 вместе со статьей. Наверное, здесь нет ничего сложного. – Opal

+0

просто попытайтесь увидеть темную сторону. Надеюсь, вы не думаете, что я не знаю, о чем вы говорите :) Я понимаю в этой области достаточно. Внезапно эта идея появилась у меня в голове как альтернативный взгляд. – user1016265

 Смежные вопросы

  • Нет связанных вопросов^_^