gpt4 book ai didi

web-services - REST 数组操作最佳实践

转载 作者:可可西里 更新时间:2023-11-01 16:18:11 26 4
gpt4 key购买 nike

我可以通过 REST 完全访问 foo 资源:

{
"name": "foo",
"tags": [
"tag01",
"tag02",
"tag03"
]
}

我想删除 tags 数组中的 tag01

通常我会在没有 tag01 的情况下 GET\fooPUT\foo 返回。在这种情况下,这个对象很小,所以没问题。

但让我们假设它要大得多。对于这种情况,我不喜欢下载和上传这些数据。经过一些谷歌研究,我发现了 http PATCH .我看起来正是我需要的。

我现在以PATCH方式请求

PATCH /foo/tags?op={add|delete}

要删除我会使用:

PATCH /foo/tags?op=delete

有了这些数据:

{
"value": "tag01"
}

现在有两个我不喜欢的想法:

  • 查询字段 op - 是否有一些在 rfc 或 smth 中描述的默认名称。像这样
  • 请求数据中的成员 value - 这也是自由选择的名称

我觉得不对。

有没有其他方法可以通过 REST 操作数组?

在 PATCH 方式中是否有一些命名约定?

最佳答案

PATCH 的负载应该包含 "instructions describing how a resource currently residing on the origin server should be modified to produce a new version" .所有信息都应在有效负载中传递,而不是在查询参数中传递。

例如你可以发送:

PATCH /foo

[
{
"op": "remove",
"path": "/tags/0"
}
]

路径/tags/0 指向数组的第一个元素。其余元素应向左移动。

参见 JSON Patch draft了解更多详情。

关于web-services - REST 数组操作最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24011490/

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