3

这是我目前正在做的一个玩具项目。

我的应用程序包含带有多项选择答案的问题。

问题 url 采用以下格式,并GET映射POST到问题控制器上的不同操作。

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

我想知道是否值得将其重新设计为 RESTful 风格。我知道我需要将答案作为一种资源来介绍,但我很难想出一个看起来很自然的网址来回答这个问题。

重新设计是否值得?您将如何构建网址?

4

2 回答 2

3

我认为如果你映射会更好:

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'

那么你只能有一个具有指定类别和难度的问题。

于 2010-03-30T12:06:15.230 回答
2

您不一定需要将答案视为单独的资源:您可以将答案视为问题的一个元素。事实上,我认为这会更好——除非它与问题相关联,否则答案并不值得任何东西。

于 2010-03-30T11:56:31.433 回答