我应该将哪种HTTP方法用于我的REST服务方法做READ&写?

时间:2013-02-26 02:03:55

标签: java web-services rest restful-architecture

根据RESTful服务指南,我们应该使用GET来读取资源,使用POST来创建新资源,使用DELETE来删除现有资源等。

但假设我正在开发一个RESTFul Web服务,比如OrderProcessing。在placeOrder(Order)方法中,我必须阅读一些表,如库存,产品详细信息等,在表格中插入一些新行,如订单和订单详细信息,并执行更新,如降低库存水平等。然后我应该使用什么HTTP方法placeOrder(方法。

我们正在创建一个新资源(Order),所以我认为POST是正确的HTTP方法。

但一般来说,在同一方法中读取/创建/更新数据的方法应该使用什么动词?

2 个答案:

答案 0 :(得分:0)

我同意你认为POST适合这里。即使您正在执行多个操作,也可以将其视为Order资源的单个创建。至于其他操作,我会将这些内容视为您未向您的服务消费者公开的内部详细信息。

编辑 - 更进一步,这假定您已将Order定义为您的资源,POST主体包含此资源的表示。并且完全是RESTful,如果POST导致创建新订单,则HTTP 201是适当的响应代码。有关详细信息,请参阅http://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html的第9.5节。

答案 1 :(得分:0)

绝对是POST。出于显而易见的原因,您可以排除GET和DELETE,并且您只想使用PUT进行幂等操作。由于您正在减少库存,因此可以安全地排除PUT作为可行选项。