首页 > 解决方案 > 如何在.net core中递归调用web api?

问题描述

我有一个端点,它返回包含酒店的响应和一个显示更多可用结果的标志,客户端需要递归调用此端点,直到服务器返回更多结果标志为假。实现这一点的更好方法是什么?有人可以帮我吗?

标签: c#recursionasp.net-web-api.net-core

解决方案


第一种选择:尽可能避免

请尽量避免对 HTTP API 的调用,以避免网络延迟。如果您想从应该响应的客户端进行多次调用,这一点非常重要。

例如,如果您正在开发 Web 应用程序/WPF 应用程序,并且您希望用户单击触发 10-20 次 API 调用的内容,则操作可能无法快速完成,可能会导致用户体验不佳。

如果它是一项后台工作,那么可能多次调用会更有意义。

第二种选择:优化来自客户端的 HTTP 调用

如果您仍想通过 HTTP 进行多次调用,那么您将不得不以某种方式优化代码,以至少避免网络延迟。

为了避免网络延迟,您可以在客户端的一次调用中带来所有数据或主要数据块。然后客户端可以迭代这组数据。

即使您减少了一半的呼叫,您也会为客户处理赢得更多时间。

另外的选择

您还可以尝试考虑这是否可以是断开连接的操作 - 客户端仅向服务器发送一个通知,然后服务器执行所有迭代。

客户端可以从数据库的某处读取状态以了解此操作是否完成。这样,您的客户端 UI 仍然会说响应式,并且您将能够将所有繁重的处理卸载到服务器。

您将不得不考虑哪些选项适合您的产品/项目的高级设计。

希望我已经提供了足够的思考(尽管这可能无法直接解决您的问题)。


推荐阅读