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

Sha*_*der 5 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
Run Code Online (Sandbox Code Playgroud)

yda*_*coR 5

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

维基百科总结了请求方法及其预期行为。

一般来说:

  • AGET应该用于从 Web 服务请求信息。

  • APOST应该用于将数据放置到 Web 服务器,其中没有关于 Web 服务应该将数据放置在哪里的规范。一个例子可能是 StackOverflow 上的一个问题。这可以被认为等同于插入。

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

  • 而 aDELETE显然用于从 Web 服务器中删除一些数据或资源。

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