PUT批量请求正文

时间:2019-02-25 15:13:09

标签: javascript rest service response put

我想知道这样做的正确方法是什么

我想更新列表中的一堆项目,然后一次将它们全部发送到服务器,这不像带有ID的PUT。这就是我想要的:

请求正文: [{oneKey:'一个值',anotherKey:'另一个值'},{oneKey:'一个值'}]

我想通过PUT将其发送到此服务:mydomain / myservice 而不是像这样的mydomain / myservice / 1

  • 正确的响应值形式是什么?
  • 如果一切正常,我应该收到新的更新值吗?
  • 如果一切正常,我应该收到新的更新值和其他未更新的值吗?
  • 如果出现问题,我应该收到旧值吗?

还有别的吗?

1 个答案:

答案 0 :(得分:0)

我认为您的问题指出了在RESTful API中不遵循RESTful样式所引起的摩擦。通常,您将为每个资源发送一个PUT请求,并针对该特定资源获得相应的操作响应。但是有时候,并非总是总是最好的做事方式。因此,我已经看到这种解决方法有两种。

选项1 对于这些类型的批处理方案,您将具有单独的RPC服务来处理这些请求。这是一个完全独立的过程,通常是一个SOAP Web服务,或者,如果您想使用一种更新的方法来进行操作,可以查看grcp.io。非常有效,非常适合此类请求。但是,由于您需要处理其他流程,因此会有更多开销。

选项2 使用当前的RESTfull API,并在URI中使用“ _verb”段。这代表执行而不是资源。下划线是了解它不是资源的视觉提示。 例如:POST https://api.mydomain.com/sales/orders/_batchUpload

在您的情况下,响应将是有意义的。我已经看过的一种方式是,响应对象包含一个资源ID列表,每个ID都有一个状态标志。因此,状态为“成功”或“失败”。