0

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

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

在非常高的层次上,我们正在创建一个新资源(订单),所以我认为 POST 是正确的 HTTP 方法。

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

4

2 回答 2

0

我同意你认为 POST 在这里是合适的想法。即使您正在执行多项操作,您也可以将其视为您的订单资源的一次创建。至于其他操作,我会将它们视为您不会向服务使用者公开的内部细节。

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

于 2013-02-26T02:22:05.097 回答
0

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

于 2013-02-26T02:35:51.247 回答