对子资源的批处理 POST 请求的预期逻辑是什么

What is the expected logic of a batched POST request to a subresource

我喜欢 vectorized/batched 请求的想法类似于 StackExchange API offers 并且想为我自己的 API 实现一些东西,即 GET /users/1;2;3;4;5 会 return id为1到5的用户资源。

我认为这在读取数据时相当简单,但是预期的行为是什么,即对子资源的 POST 请求?

POST /1;2;3;4;5/subresource

这是否意味着:

我对这种方法有一些担忧。首先,资源应该可以通过某些资源定位器 (URI) 进行唯一寻址。然而,使用您的方法以某种方式绕过了 IMO 的这一要求。这种方法也可能在以后导致其他问题,即大量的框架 do not allow URIs that exceed a certain character size.

此外,资源应该使用 UUID,而不是连续的资源 ID。这将首先防止 guessing attacks 并防止移动资源或在两者之间插入一些逻辑问题。

The POST method requests that the target resource process the representation enclosed in the request according to the resource's own specific semantics.

关于 HTTP POST 操作,specification 明确指出通过 POST 接收的任何主体的语义由服务开发人员决定。所以你基本上可以在 POST 请求中做任何事情。由于语义完全取决于您,因此您必须明确记录行为。不记录应用逻辑会给服务用户留下很大的灰色地带。