RESTful Вопрос / Ответ дизайн? - PullRequest
3 голосов
/ 30 марта 2010

Это игрушечный проект, над которым я сейчас работаю.

Мое приложение содержит вопросы с несколькими вариантами ответов.

URL-адрес вопроса имеет следующий формат, в котором GET & POST сопоставляется с различными действиями в контроллере вопросов.

GET:   url.com/questions/:category/:difficulty      => 'ask'
POST:  url.com/questions/:category/:difficulty      => 'answer'

Мне интересно, стоит ли переделывать это в стиль RESTful. Я знаю, что мне нужно представить ответы в качестве ресурса, но я изо всех сил пытаюсь придумать URL, который выглядел бы естественным для ответа на этот вопрос.

Стоит ли перепроектировать? Как бы вы занялись структурированием URL-адресов?

Ответы [ 2 ]

3 голосов
/ 30 марта 2010

Я думаю, что будет лучше, если вы отобразите:

POST url.com/:category/:difficulty/questions => ask question
GET  url.com/questions                       => list all questions
GET  url.com/:category/:difficulty/questions => list questions for category and difficulty
GET  url.com/questions/:id                   => show question
POST url.com/questions/:id                   => add answer
PUT  url.com/questions/:id                   => edit question
PUT  url.com/questions/:question_id/:id      => edit answer with id :id
GET  url.com/questions/:question_id/:id      => show question with highlighted answer (like it is here on SO)

Если вы сделаете:

POST:  url.com/questions/:category/:difficulty      => 'answer'

Тогда у вас может быть только один вопрос с указанной категорией и сложностью.

2 голосов
/ 30 марта 2010

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

...