【问题标题】:Which simple REST URL pattern is more common / better?哪种简单的 REST URL 模式更常见/更好?
【发布时间】:2011-12-09 17:23:08
【问题描述】:
/controller/action/id

/controller/id/action

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

使用其中一种有什么优点/缺点吗?


编辑:

或者,也许换一种方式来思考这个问题,为什么大多数 MVC 框架(ASP.Net MVC、Grails、Spring MVC)默认使用/controller/action/id URL 模式?这样做有什么好处吗?

【问题讨论】:

    标签: url rest url-pattern


    【解决方案1】:

    这些都不是 RESTful。 URL 中不应有动词/动作。那些仅限于 HTTP 方法是有充分理由的(这样客户端就可以与您的服务进行交互,而无需了解任何具体信息)。

    如果除了 GET 和 POST 之外什么都做不了,请使用 POSTaction 参数发送到 /controller/id

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        我绝对更喜欢/controller/action/id。在我看来,这更像是在识别资源(名词),而不是识别对该名词(动词)的动作。

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

        还可以查看此讨论以了解更多信息。 REST URL structure advice

        【讨论】:

        • “使用 GET 公开某个删除操作,以便用户可以通过浏览器执行该操作”:哇,我的上帝。我希望一些网络蜘蛛出现并删除你所有的数据,认为它只是得到它!为仅支持 GET 和 POST 的浏览器传输 HTTP 方法时,请使用 POST 传输除 GET 之外的所有内容!
        猜你喜欢
        • 1970-01-01
        • 2010-12-29
        • 2023-04-08
        • 1970-01-01
        • 1970-01-01
        • 2015-05-21
        • 1970-01-01
        • 2012-09-28
        • 2013-03-13
        相关资源
        最近更新 更多