我们有一个微服务,它将接受来自另一个组件的一些数据,处理它,丰富它并将其返回给客户端。将此映射到REST的最佳权衡/修复方法是什么?
我们无法使用GET,因为传入的RQ非常复杂; POST引起了一些疑问,因为即使重新重新启动资源,除了ID之外,它通常与RQ有效负载相同。
答案 0 :(得分:0)
我认为这取决于"处理它的程度,丰富它"代码更改资源,如果在此过程中更改了资源的语义。
如果您的操作几乎不修改资源并保留其含义,您可能需要考虑PATCH操作。
如果原始资源中的许多字段被修改但操作后资源类型保持不变,则可以使用PUT操作。
如果操作改变了资源以至于它改变了它的含义,那么你可能正在创建一种新类型的(子)资源,在这种情况下你需要对不同的/子资源URI进行POST。
答案 1 :(得分:0)
坦率地说,这对我来说听起来并不像REST。你真的在转移资源状态吗?
为了使这更加RESTful,您可以考虑:
PUT
创建资源GET
获取新创建的资源。由于它们是一种不同的资源(前后'富集'),你可以说GET
和PUT
应该发生在不同的资源上,或者至少使用不同的媒体类型。
但是,如果我是你,我不会在这里使用REST模式,只使用POST
并让该请求立即返回丰富的响应。