如何将API响应分页到只需一个响应的其他系统?

问题描述 投票:1回答:2

我正在处理两个系统(A和B)之间的集成,我负责A侧(C#)。在这种情况下,B客户端使用A API,其中每个端点都提供与该端点相关的所有数据(例如,端点客户端将仅在一个响应中提供所有客户端)。

问题在于,在某些端点中,数据量可能(它会)增加很多,我需要找到一些发送它的方法,最好不需要改变B实现(有很多B)。

关于这一挑战的一个重要细节是B方无法点击Next或类似下一页,它就是一个系统。

一些想法/图书馆/小贴士可以帮助我吗?

实际场景:ClientController在一个响应中提供所有10000个客户端。

预期的场景:一次发送100个客户端,在前一个100到达的响应之后发送接下来的100个客户端。

c# api pagination response
2个回答
0
投票

要看。

如果您有一个像大视频一样分享的对象,您可以使用“范围”请求并返回总字节数。这不适用于更改结果的请求,因为显然它会期望多个片段请求,并且在您获得每个响应之前结果将无法理解。

另一个想法是为响应中的每个对象提供一个ID,并请求作为请求参数给出的最后一个已知ID开始的响应。


0
投票

您可以使用查询字符串:

/your_api/clients?limit=100&start=0"

所以在系统B方面,你将通过改变start=和/或limit=来迭代它并在那一刻尽可能多地拉动

编辑:不需要做任何种类的mambo jumbo,查询字符串是件好事,如果你改变它,就没有必要更新消费者,比如当你改变API时,所以如果有一些第三个系统谁没有需要你的改变,他们不需要更新。

如果要进行优化,需要更新系统B,请执行此操作。 Mambo jumbo对质量和可持续API不是好事。

© www.soinside.com 2019 - 2024. All rights reserved.