gpt4 book ai didi

rest - 使用 REST API 更改数组/集合顺序

转载 作者:行者123 更新时间:2023-12-03 10:16:29 25 4
gpt4 key购买 nike

您是否知道设计 REST 方法以更改小集合的顺序的任何“最佳实践”?

我在“GET/api/v1/items”中有一个集合。此端点返回一个 JSON 数组,每个项目都有一个唯一的 id。

我正在考虑创建“PATCH/api/v1/items”并使用新订单发送一组 id。但我想知道是否有任何替代或设计模式可以正确完成这项任务。

最佳答案

遵循 REST 统一接口(interface)约束,HTTP PUTPATCH方法必须遵守标准语义,因此您可以通过以下方式使用任何一种方法:

PUT ,客户可以按照他们想要的顺序上传一个全新的表示。他们会要求 GET /api/v1/items ,根据需要更改订单,然后使用 PUT /api/v1/items 提交回来.

PATCH ,客户可以发送一个差异文档,根据需要执行订单更改。您可以使用像 json-patch 这样的格式和客户端使用 move 执行更改操作和数组路径。

请注意,这些都不是设计模式或最佳实践。他们只是如何 PUTPATCH方法应该有效。理想情况下,这应该适用于任何实现 GET 的 RESTful 应用程序。 , PUTPATCH为该 URI 上的资源提供正确的方法,这就是 REST 的美妙之处。如果你做对了,你只需要做一次,客户就可以为每个人概括。例如,客户可以选择 PUT小收藏的方式,以及 PATCH较大的方式。

两个你的想法使用PATCH带有 id 数组,来自@dit 的答案建议使用 PUT并不是真正的 RESTful,因为它们打破了标准语义:你的不使用 delta 格式,他的使用 PUT 进行部分更新.但是,如果使用 POST 完成,这两个选项都可以是 RESTful。 . POST是执行 HTTP 协议(protocol)未标准化的任何操作的方法,因此您可以使用它做任何您想做的事情,但您必须记录具体如何做。

所以,这取决于你。如果您完全关心 RESTful 并且您的应用程序有长期目标——我说的是几年甚至几十年——我会说要统一实现 PUT。和 PATCH首先建议的方法。如果您喜欢简单的方法,请使用您的或 dit 的想法与 POST .

关于rest - 使用 REST API 更改数组/集合顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29558528/

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