哪个简单的RESTURL模式更常见/更好?

哪个简单的RESTURL模式更常见/更好?,url,rest,url-pattern,Url,Rest,Url Pattern,或 哪个更常见?哪个更可取,为什么 是否存在使用其中一个的赞成/反对意见 编辑: 或者,用另一种方式来思考这个问题,为什么大多数MVC框架(ASP.NETMVC、Grails、SpringMVC)默认为/controller/action/idURL模式?这有什么好处吗?Asp.Net MVC使用/controller/action/id。这就是你在那种环境中最常看到的。我看不到任何技术上的好处,但简单地使用一个通用模式可以让事情更容易理解。我肯定更喜欢/controller/action/i

哪个更常见?哪个更可取,为什么

是否存在使用其中一个的赞成/反对意见


编辑:


或者,用另一种方式来思考这个问题,为什么大多数MVC框架(ASP.NETMVC、Grails、SpringMVC)默认为
/controller/action/id
URL模式?这有什么好处吗?

Asp.Net MVC使用
/controller/action/id
。这就是你在那种环境中最常看到的。我看不到任何技术上的好处,但简单地使用一个通用模式可以让事情更容易理解。

我肯定更喜欢
/controller/action/id
。我觉得这更像是识别一个资源(一个名词),而不是识别这个名词(一个动词)上的一个动作


除了资源的确切URL外,还需要考虑如何映射HTTP谓词。根据我的经验,我们已经根据与动词组合时最有意义的内容对URL进行了调整。也就是说,为了方便起见,我们在一些地方打破了规范方法(例如,使用GET公开某个删除操作,以便用户可以通过浏览器执行该操作)

还可以查看此讨论了解更多信息。

这两个都不是宁静的。URL中不应包含动词/动作。这些限制在HTTP方法中是有充分理由的(这样客户机就可以在不知道任何特定信息的情况下与您的服务进行交互)


如果您除了GET和POST之外无法执行任何操作,请使用
POST
操作
参数发送到
/controller/id

“使用GET公开某个删除操作,以便用户可以通过浏览器执行该操作”:哇,天哪。我希望有一些网络蜘蛛出现,删除你的所有数据,以为它只是得到它!当为只支持GET和POST的浏览器挖掘HTTP方法时,使用POST挖掘除GET之外的所有内容!
/controller/action/id
/controller/id/action