我正在处理两个系统(A和B)之间的集成,我负责A侧(C#)。在这种情况下,B客户端使用A API,其中每个端点都提供与该端点相关的所有数据(例如,端点客户端将仅在一个响应中提供所有客户端)。
问题在于,在某些端点中,数据量可能(它会)增加很多,我需要找到一些发送它的方法,最好不需要改变B实现(有很多B)。
关于这一挑战的一个重要细节是B方无法点击Next或类似下一页,它就是一个系统。
一些想法/图书馆/小贴士可以帮助我吗?
实际场景:ClientController在一个响应中提供所有10000个客户端。
预期的场景:一次发送100个客户端,在前一个100到达的响应之后发送接下来的100个客户端。
要看。
如果您有一个像大视频一样分享的对象,您可以使用“范围”请求并返回总字节数。这不适用于更改结果的请求,因为显然它会期望多个片段请求,并且在您获得每个响应之前结果将无法理解。
另一个想法是为响应中的每个对象提供一个ID,并请求作为请求参数给出的最后一个已知ID开始的响应。
您可以使用查询字符串:
/your_api/clients?limit=100&start=0"
所以在系统B方面,你将通过改变start=
和/或limit=
来迭代它并在那一刻尽可能多地拉动
编辑:不需要做任何种类的mambo jumbo,查询字符串是件好事,如果你改变它,就没有必要更新消费者,比如当你改变API时,所以如果有一些第三个系统谁没有需要你的改变,他们不需要更新。
如果要进行优化,需要更新系统B,请执行此操作。 Mambo jumbo对质量和可持续API不是好事。