在REST中批处理

ale*_*lex 5 rest wcf

对于Web服务,将多个服务调用批处理为一条消息以减少大量远程调用被认为是一种很好的做法.有没有办法用RESTful服务做到这一点?

Dar*_*ler 5

如果您确实需要批处理,Http 1.1 支持一个称为 HTTP Pipelined 的概念,它允许您在接收响应之前发送多个请求。在这里查看


dav*_*000 4

我不明白批处理请求在 REST 中有何意义。由于基于 REST 的服务中的 URL 代表要执行的操作以及要执行该操作的数据,因此发出批量请求会严重破坏概念模型。

如果您多次对相同数据执行相同操作,则会出现例外情况。在这种情况下,您可以为请求参数传递多个值,也可以在正文中对此重复进行编码(但这仅适用于 PUT 或 POST)。Gliffy REST API 支持通过以下方式将多个用户添加到同一文件夹

POST /folders/ROOT/the/folder/name/users?userId=56&userId=87&userId=45
Run Code Online (Sandbox Code Playgroud)

这本质上是:

PUT /folders/ROOT/the/folder/name/users/56
PUT /folders/ROOT/the/folder/name/users/87
PUT /folders/ROOT/the/folder/name/users/45
Run Code Online (Sandbox Code Playgroud)

正如另一位评论者指出的那样,可以通过请求参数完成 GET 的分页结果:

GET /some/list/of/resources?startIndex=10&pageSize=50
Run Code Online (Sandbox Code Playgroud)

如果REST 服务支持的话。