题
与网络的服务则被认为是良好做法以批若干业务调入一个消息来降低一个数量的远程电话。是否有任何方式做到这一与宁静的服务?
解决方案
我没有看到批处理请求在REST中有什么意义。由于基于REST的服务中的URL表示要执行的操作以及执行它的数据,因此批量请求会严重破坏概念模型。
如果您多次对同一数据执行相同的操作,则会出现异常。在这种情况下,您可以为请求参数传递多个值,也可以在正文中对此重复进行编码(但这只适用于PUT或POST)。 Gliffy REST API支持通过
将多个用户添加到同一文件夹POST /folders/ROOT/the/folder/name/users?userId=56&userId=87&userId=45
基本上是:
PUT /folders/ROOT/the/folder/name/users/56
PUT /folders/ROOT/the/folder/name/users/87
PUT /folders/ROOT/the/folder/name/users/45
正如另一位评论者指出的那样,GET的分页结果可以通过请求参数来完成:
GET /some/list/of/resources?startIndex=10&pageSize=50
如果 REST服务支持它。
其他提示
如果你真的需要批处理,Http 1.1支持一个名为HTTP Pipelining的概念,它允许你在收到响应之前发送多个请求。查看此处
我同意达雷尔米勒的观点。 HTTP已经支持HTTP Pipelining,而且HTTP支持keep alive,允许您在同一个套接字上并发地流式传输多个HTTP操作,以避免在将新请求流式传输到服务器之前等待响应等。
因此,通过HTTP流水线操作并保持活动状态,您可以在使用相同的底层REST API时获得批处理的效果 - 因此通常不需要为您的服务提供其他REST API
团队与阿斯托里亚取得了良好的使用多部分mime发送一批呼吁。不同的流水线,作为多部分信息,可以推断的意图原子操作。似乎相当优雅。
当然有一种方法,但需要服务器端支持。我所知道的所有方法都没有神奇的尺寸。
不隶属于 StackOverflow