/controller/action/id
或者
/controller/id/action
哪个更常见?哪个更可取,为什么?
使用其中一种是否有任何优点/缺点?
编辑:
或者,也许换一种方式来思考这个问题,为什么大多数 MVC 框架(ASP.Net MVC、Grails、Spring MVC)都默认使用/controller/action/id
URL 模式?这有什么好处吗?
/controller/action/id
或者
/controller/id/action
哪个更常见?哪个更可取,为什么?
使用其中一种是否有任何优点/缺点?
编辑:
或者,也许换一种方式来思考这个问题,为什么大多数 MVC 框架(ASP.Net MVC、Grails、Spring MVC)都默认使用/controller/action/id
URL 模式?这有什么好处吗?
这些都不是 RESTful 的。URL 中不应有动词/动作。这些仅限于 HTTP 方法是有充分理由的(以便客户端可以与您的服务交互而无需了解任何具体信息)。
如果除了 GET 和 POST 之外什么都做不了,使用POST
发送action
参数到/controller/id
Asp.Net MVC 使用/controller/action/id
. 所以这是你在那个环境中最常看到的。我没有看到任何技术优势,但简单地使用通用模式可以让事情更容易理解。
我绝对喜欢/controller/action/id
。这对我来说更像是识别资源(名词)而不是识别对该名词(动词)的动作。
除了资源的确切 URL 之外,您还需要考虑如何映射 HTTP 动词。根据我的经验,我们根据与动词结合时最有意义的内容来调整 URL。也就是说,为了方便起见,我们还有几个地方打破了规范方法(例如,使用 GET 公开某个删除操作,以便用户可以通过浏览器执行该操作)。
另请查看此讨论以获取更多信息。 REST URL 结构建议