REST:我们可以为 API 同时执行多个请求部分执行 POST/PUT/DELETE 资源吗

REST: Can we partially execute a POST/PUT/DELETE resource for API executing multiple request at the same time

我们是一家电子商务公司,我们允许我们的经销商一次性列出多种产品。

API 的简化版本如下所示:

{
 "dealerId":1,
 "stocks": {
        [] 
 }

}

由于我们允许经销商一次post多只股票,万一出现验证错误,我们应该怎么做。我们是否应该成功 post 更正股票并发送包含成功和不成功股票 ID 的响应消息?如果是,在这种情况下响应代码应该是什么,200 或 400 或其他代码?

例如,假设 stockId1 的数据正确,但 stockId2 的价格小于 1,这是验证错误。

我们应该 POST stock1 并拒绝 stock2 还是我们应该拒绝两者?

对于这种情况,REST 有何建议?

您有两个选择:

  1. Return 202 Accepted 告诉客户它已被接受,但不能保证一切顺利并如预期。
  2. Return 200 和失败的项目列表。

重要的是选择一个,在您的 API 上清楚地传达这一点,以便客户知道并保持一致。换句话说,不要对某些操作使用 202,对其他操作使用 200