REST:具有有效负载突变的POST方法

时间:2017-05-23 14:34:41

标签: rest http

我们有一个微服务,它将接受来自另一个组件的一些数据,处理它,丰富它并将其返回给客户端。将此映射到REST的最佳权衡/修复方法是什么?

我们无法使用GET,因为传入的RQ非常复杂; POST引起了一些疑问,因为即使重新重新启动资源,除了ID之外,它通常与RQ有效负载相同。

2 个答案:

答案 0 :(得分:0)

我认为这取决于"处理它的程度,丰富它"代码更改资源,如果在此过程中更改了资源的语义。

如果您的操作几乎不修改资源并保留其含义,您可能需要考虑PATCH操作。

如果原始资源中的许多字段被修改但操作后资源类型保持不变,则可以使用PUT操作。

如果操作改变了资源以至于它改变了它的含义,那么你可能正在创建一种新类型的(子)资源,在这种情况下你需要对不同的/子资源URI进行POST。

答案 1 :(得分:0)

坦率地说,这对我来说听起来并不像REST。你真的在转移资源状态吗?

为了使这更加RESTful,您可以考虑:

  1. 使用PUT创建资源
  2. 使用GET获取新创建的资源。
  3. 由于它们是一种不同的资源(前后'富集'),你可以说GETPUT应该发生在不同的资源上,或者至少使用不同的媒体类型。

    但是,如果我是你,我不会在这里使用REST模式,只使用POST并让该请求立即返回丰富的响应。