【问题标题】:PUT bulked request bodyPUT 批量请求正文
【发布时间】:2019-02-25 15:13:08
【问题描述】:

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

我想更新列表中的一堆项目并将它们一次性发送到服务器,而不是像 PUT 那样带有 id。这就是我想要的:

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

我想用 PUT 把它发送到这个服务:mydomain/myservice 而不是像 mydomain/myservice/1 这样的东西

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

还是别的什么?

【问题讨论】:

    标签: javascript rest service response put


    【解决方案1】:

    我认为您的问题指出了在 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 都有一个状态标志。因此,状态是“成功”或“失败”。

    【讨论】:

      猜你喜欢
      • 2019-03-13
      • 1970-01-01
      • 2017-09-03
      • 1970-01-01
      • 2021-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-13
      相关资源
      最近更新 更多