在C#Blazor中使用HATEOAS的API并行GET

问题描述

我正在使用实现HATEOAS的API(这不是我自己的,因此我无法更改任何内容)。我通过GET收到的JSON文件如下所示:

{
"_links": {
    "_children": {
        "child1": {
            "href": "/document/child1"
        },"child2": {
            "href": "/document/child2"
        },...

这意味着,首先,我调用根组件,从中获得所有子项的链接,然后再调用每个子项的URL来获取其子项,依此类推。

这并不是真正有效的方法,因为有时有数百个孩子,而一个请求大约需要250毫秒。目前,我使用一个递归函数来进行这样的调用(Blazor WebAssembly):

response = await _httpClient.GetAsync(rootUrl + child.HRef);

我正在使用System.Net.Http.HttpClient。现在我想我可以并行进行所有这些调用以节省时间。我找到了一些解决方案,当您已经知道URL时如何发出并行请求(例如http://www.michalbialecki.com/2018/04/19/how-to-send-many-requests-in-parallel-in-asp-net-core/),但是如果每次调用后都获得URL,则没有很好的解决方案。

我想到了为根组件的每个子代创建一个线程,然后为子代的每个子代创建线程,直到达到最大并行调用的次数。

我不确定如何实现这样的功能,如果有人有答案,我会很高兴。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...