为什么我们在RestFul中需要GET和POST方法,因为GET也可以表现为POST

时间:2016-05-18 16:22:40

标签: java rest

我知道这是一个基本问题,但我无法找到答案。我的问题是,当我们甚至可以从GET方法插入数据时,为什么我们需要在restful中使用POST方法。如果有任何特定功能使POST与GET不同。

感谢。

2 个答案:

答案 0 :(得分:2)

最好使用HTTP协议提供的标准方法来处理Web服务的请求Restful:

  • 获取数据
  • POST更新记录
  • PUT插入记录
  • 删除删除记录

按照这个惯例,一个人很容易理解他不知道的图书馆。

只是想知道我是否需要让所有公司

GET /companies

检索可通过1

识别的特定公司
GET /companies/1

创建新公司:

PUT /companies

更新可识别的公司1

POST /companies/1

删除由1

标识的公司
DELETE /companies/1

并扩展这个概念,以检索公司的所有家属1

GET /companies/1/dependents

检索公司的所有发票

GET /companies/1/invoices

等等。

正如您所知,如果您知道自己喜欢做什么,则可以轻松地重新创建所有网址以获取,修改,创建和删除数据。没有必要遵循这个惯例,但特别是如果您正在创建一个可以从公司外部使用的Web服务,那么为所有人定义标准非常重要。

此外,可以缓存GET方法,现有的基础架构(代理,防火墙)很容易实现。

答案 1 :(得分:1)

它们是不同的方法,具有不同的目的和规范。

  

关于GET请求的其他一些说明:

     
      
  • 可以缓存GET请求
  •   
  • GET请求保留在浏览器历史记录中
  •   
  • GET请求可以加入书签
  •   
  • 处理敏感数据时绝不应使用GET请求
  •   
  • GET请求有长度限制
  •   
  • GET请求只应用于检索数据
  •   
     

有关POST请求的其他一些说明:

     
      
  • POST请求永远不会被缓存
  •   
  • POST请求不会保留在浏览器历史记录中
  •   
  • POST请求无法加入书签
  •   
  • POST请求对数据长度没有限制
  •   

应该适当使用它们。有关使用和规范的更多信息,look here