修补多个资源
PATCH multiple resources
简短:是否符合标准,RESTful以及启用 PATCH 请求以更新资源集合的好主意,而不仅仅是单个资源,而是还是一个人?
长:
我正在考虑公开一种方法来启用对我的资源集合的批量、原子更新。示例:
PATCH /url/myresources
[
{
"op": "add",
"path": "/1", // ID if the individual resource
"value":
{
... full resource representation ...
}
},
{
"op": "remove",
"path": "/2"
},
{
"op": "replace",
"path": "/3/name",
"value": "New name"
}
]
上下文是一个publicAPI的商业解决方案。允许此类 PATCHes 的好处是原子性和批处理友好性,无需垃圾邮件请求、单独处理故障等。
我已经咨询过 https://www.rfc-editor.org/rfc/rfc6902 and https://www.rfc-editor.org/rfc/rfc5789,但找不到确定的答案是否符合要求。 RFC 大多指的是“资源”,但也可以这样处理资源集合。
这是个好主意吗?有更好的选择吗?
我喜欢这个主意。集合也是一种资源。所以对它采取行动是非常好的 REST。
您的 PATCH
请求的语义是请求正文中列出的 而非 的每个子资源都将保持原样。 列出的每个子资源都将按照描述进行更改。是的,这听起来不错。
只要请求的每一段都可以在一个请求中执行,我认为没有问题。您的 "all in one" 请求和像这样的单个请求都可以。
PATCH /url/myresources/1
{
"op": "add",
"value":
{
... full resource representation ...
}
}
简短:是否符合标准,RESTful以及启用 PATCH 请求以更新资源集合的好主意,而不仅仅是单个资源,而是还是一个人?
长:
我正在考虑公开一种方法来启用对我的资源集合的批量、原子更新。示例:
PATCH /url/myresources
[
{
"op": "add",
"path": "/1", // ID if the individual resource
"value":
{
... full resource representation ...
}
},
{
"op": "remove",
"path": "/2"
},
{
"op": "replace",
"path": "/3/name",
"value": "New name"
}
]
上下文是一个publicAPI的商业解决方案。允许此类 PATCHes 的好处是原子性和批处理友好性,无需垃圾邮件请求、单独处理故障等。
我已经咨询过 https://www.rfc-editor.org/rfc/rfc6902 and https://www.rfc-editor.org/rfc/rfc5789,但找不到确定的答案是否符合要求。 RFC 大多指的是“资源”,但也可以这样处理资源集合。
这是个好主意吗?有更好的选择吗?
我喜欢这个主意。集合也是一种资源。所以对它采取行动是非常好的 REST。
您的 PATCH
请求的语义是请求正文中列出的 而非 的每个子资源都将保持原样。 列出的每个子资源都将按照描述进行更改。是的,这听起来不错。
只要请求的每一段都可以在一个请求中执行,我认为没有问题。您的 "all in one" 请求和像这样的单个请求都可以。
PATCH /url/myresources/1
{
"op": "add",
"value":
{
... full resource representation ...
}
}