2016-02-24 46 views
0

我有一个Web应用程序,必须使用REST API获取1000条记录。每个记录大约500个字节。REST API设计 - 获取多个(1000)记录

什么是最好的办法做到这一点,为什么?有没有更好的方法来做到这一点?

1>一次取一条记录。并行触发1000个呼叫。

2>以20个群组取值。并行触发50个呼叫。

3>以100个组为单位进行读取并行触发10个调用。

4>一起取出所有1000条记录。

+0

取决于api的实现实际上在做什么...... – Dima

+0

也许在程序员交流中发布这个? – arisalexis

+0

请让我们知道你正在寻找什么更多的信息,以便我们可以尝试更好地调整我们对这个问题的答案?否则,您可能需要考虑关闭问题或标记最佳答案,或者可能将其作为推荐的@arisalexis在程序员交流平台中发布。 –

回答

1

正如@迪玛在评论中所说,这取决于你想要做什么。

记录如何被消耗?

  • 它是一个后端过程来处理或编程通信编程?如果是这样,那么这取决于客户收到处理的难度。是否需要很长时间来处理每条记录?每条记录1毫秒,或每条记录100毫秒?这个选项完全取决于每个记录可能的处理时间。

  • 是否有一个前端为人类用户使用?如果是这样,批量请求将会有利于分页结果等原因。在这种情况下,我会亲自选择2或3。

一般来说,根据记录的绝对数量,我建议考虑批量请求(通过触发更少的调用)。从启发式的角度来看,你可能以这种方式获得更好的整体网络吞吐量。

如果您添加更多细节,我会很乐意更新我的答案,但在此之前,将军必须这样做!

0

最适合什么情况?你想优化什么?

我做了一些测试,但回想起类似的情况,稍微更大的有效载荷(图像),我的目标是在高延迟设置(跨大陆)上有效地利用网络。

我的结果是,在最小量的并行性(如3-4线程)后,网络几乎完全饱和。我们将它与具体的(专有的)基于UDP的传输协议进行了比较,并没有发现可衡量的差异。

无论如何,它可能不是你正在寻找的,但有时有一个“哑”http端点是足够好的。