gpt4 book ai didi

rest - 以 RESTful 方式更新多个项目

转载 作者:行者123 更新时间:2023-12-03 02:53:31 24 4
gpt4 key购买 nike

尝试更新/删除多个项目时,正确的 RESTful 方法应该是什么?

典型示例:有一个项目列表,即收到的邮件的收入文件夹,您可以在其中通过设置适当的复选框来选择一组项目。然后您单击“删除”按钮并发送删除它们的请愿书。我应该调用什么方法?什么参数?

在这种情况下,很明显我应该使用DELETE,但它一次只能处理一项。另外,我可能不想删除它们,而是将它们存储在不同的文件夹中,这可能意味着使用 PATCH,但话又说回来,PATCH 方法只允许一项.

最佳答案

In this case it's pretty obvious I should use a DELETE, but it only works with one item at once. Also, I might not want to delete them, but storing them in a different folder, which might imply using a PATCH, but then again, the PATCH method only allows one item.

您应该修补集合(或其一部分)而不是项目。例如,通过移动项目,您可以使用 PATCH/collection/?filter=x {location: newDir}。删除是一个棘手的问题。您可以使用 PATCH 或使用 DELETE/collection/?filter=x 的替代方法,但这意味着您要删除集合资源,而不是从中删除项目资源。通过批量创建,我认为使用 POST/collection/[item1, item2, ...] 是可以的。

Ofc。您也可以使用替代 URI 结构,例如 PATCH/books/1+2+3/{price: 20,currency: "EUR"}。 PATCH 也有一种替代语法,即将操作名称添加到正文中,例如 PATCH/collection/?filter=x {op: "update", location: newDir}。我不喜欢这样,但如果您想使用相同的 URI 重用 PATCH,那么它会变得很方便。将请求发送到单个批处理端点的另一种选择,例如POST/transactions/ 并使用多部分 HTTP 请求。

我认为这里要记住的最重要的部分是,您所做的是将多个操作强制到单个事务中。因此,如果您不需要立即一致性,并且请求之间失去连接也不是问题,那么客户端可以使用简单的循环并行或串行发送多个请求。

关于rest - 以 RESTful 方式更新多个项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33994393/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com