【问题标题】:HTTP verbs - When to use GET/POST/PUT/DeleteHTTP 动词 - 何时使用 GET/POST/PUT/Delete
【发布时间】:2014-07-22 11:21:17
【问题描述】:

当您使用 RESTFUL 服务时,您经常会听到术语GET/POST/PUT/DELETE。我的问题是这么多动词背后的想法是什么?我可以在GET 动词的帮助下实现一切,或者如果我想在消息正文中发布一些大数据,我可以使用POST 动词。我认为没有必要超越这两个动词。

关于何时使用哪个动词,我们是否有任何一般指导方针? 使用一个动词比另一个动词有什么优势吗??

PS:我知道背后的想法

GET : Get object
PUT : Modify Object
DELETE: Delete Object
POST : Create Object

【问题讨论】:

    标签: rest post get put restful-architecture


    【解决方案1】:

    每个动词都有不同的用途。虽然可以简单地解析主体并忽略请求方法,但这是非常糟糕的做法,并且会使任何人更难更好地理解您的 Web 服务。

    Wikipedia 总结了请求方法及其预期行为。

    一般:

    • 应使用GET 从 Web 请求信息 服务。

    • 应该使用POST 将数据放入 Web 服务器,其中有 没有关于 Web 服务应该将数据放在哪里的规范。一个 示例可能是 StackOverflow 上的一个问题。这可能被认为相当于插入。

    • 当您想要指定数据的去向时,应使用PUT。 这是一个幂等动作,因为重复它不会改变任何东西 在每次重复调用时。一个例子可能是一个答案或评论 StackOverflow,因为它们将链接到资源,例如 回答一个特定的问题。或者,这可以被视为等同于更新。

    • DELETE显然是用来删除一些数据或者 来自网络服务器的资源。

    还有其他请求方法(如 Wikipedia 文章中所述),但这些方法涵盖了人们将与 Web 服务进行的主要交互。

    【讨论】:

      【解决方案2】:

      来自官方 Mozilla 开发者网站

      • GET GET 方法请求指定资源的表示。使用 GET 的请求应该只检索数据。

      • POST POST 方法将实体提交到指定的资源,通常会导致状态更改或对服务器产生副作用。

      • PUT PUT 方法将目标资源的所有当前表示替换为请求负载。

      • DELETE DELETE 方法删除指定的资源。

      更多请查看official docs

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-08-05
        • 2014-12-06
        • 1970-01-01
        • 2013-08-26
        • 2015-01-25
        • 2016-12-27
        • 2018-06-23
        • 1970-01-01
        相关资源
        最近更新 更多