rest - HTTP 动词 - 何时使用 GET/POST/PUT/Delete

标签 rest post get put restful-architecture

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

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

PS:我知道背后的想法

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

最佳答案

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

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

一般来说:

  • 一个 GET应该用于从网络请求信息
    服务。
  • 一个 POST应该用于将数据放入 Web 服务器,那里有
    没有关于网络服务应该把数据放在哪里的规范。一个
    示例可能是 StackOverflow 上的一个问题。这可以被认为等同于插入。
  • 一个 PUT当您想指定数据的去向时应该使用它。
    这是一个幂等的 Action ,因为重复它不会改变任何东西
    在每次重复调用时。一个例子可能是一个答案或评论
    StackOverflow 因为它们将链接到资源,例如作为
    回答一个特定的问题。或者,这可以被视为更新的等价物。
  • 还有一个 DELETE显然是用来删除一些数据或
    来自网络服务器的资源。

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

    关于rest - HTTP 动词 - 何时使用 GET/POST/PUT/Delete,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24886013/

    相关文章:

    hibernate - Grails 3其余配置文件422不可显示实体在显示操作中出现结果

    java - 使用 Spring MVC 和 AngularJS 的方法 DELETE

    python - 在 Flask API 中展平数组

    mysql - 将数组中的值插入数组中的列中?

    php - 如何检查 $_GET 参数是否存在但没有值?

    java - 使用java中的httpost将参数作为数组发送到Rest Api

    html - HTTP:如何在提交响应的同时检索下一个表单?

    rest - 当在 URL 和正文中使用 id 进行 PUT 操作时,哪一个获胜?

    HTTP GET 请求在查询字符串中包含许多项目

    java - 创建名称为 'requestMappingHandlerAdapter' 的 bean 时出错