【发布时间】:2019-10-16 14:46:32
【问题描述】:
我的任务是从端点 webapi 检索数据并将其显示到 View。 外部网站开发人员为我提供了 2 个端点。
第一个端点是一个数据列表,只有:id、name和year; 第二个是每个项目(通过其 Id 获取),并且我需要使用越来越多的数据详细信息。
到目前为止,我能够调用 第一个端点 并检索所有列表并将其传递给查看...但是过了一会儿我意识到我还需要调用每个 endpoint 项目通过其 id 检索每个项目的全部详细信息...并完成后面我需要通过其 Id 调用第二个 webapi >.
所以到目前为止我的想法是:我需要调用两个 webapi。 第一个得到id列表的, 然后调用第二个 webapi 并使用从第一个 webapi 调用中已检索到的 id 列表来获取每个项目及其详细信息; 因为我无法通过 id 直接调用 webapi,因为列表是来自外部站点的动态列表,并且可以随时从外部 Web 服务器更改。所以我需要先检索列表。
我只需要你的想法,可能还有关于做什么的示例代码!!!
或者如果调用第二个 webapi 是个好主意。
-- 我还注意到调用 webapi 时有延迟,还知道 jquery 很快。--
App工作流程如下:在网站A中,当用户点击一个名为“Vehicle”的按钮时,它必须从网站B调用webapi 获取数据,并在网站 A 的页面中显示这些数据。所以有 网站 A 中的每个项目都没有用户交互。我需要检索所有 >列表 + 详细信息。
下面是我获取整个列表的端点调用。
HttpClient client = new HttpClient();
string APIdatas = null;
HttpResponseMessage response = await client.GetAsync("https://jsonplaceholder.typicode.com/todos/");
if (response.IsSuccessStatusCode)
{
APIdatas = await response.Content.ReadAsStringAsync();
}
var stringJson = JsonConvert.DeserializeObject<List<CrowdfundingViewModel>>(APIdatas);
return View(stringJson);
【问题讨论】:
-
你应该避免这种情况。您应该显示从第一次 API 调用中获得的名称列表,然后当用户选择一个名称时,您应该为所选 ID 进行第二次 API 调用并在 UI 中显示详细信息。
-
什么时候需要第二个端点的详细数据列表?是否可以使用来自第一个端点的数据,并且仅在特定项目而不是每个项目需要时才获取第二个端点?
-
我想这取决于您的用例:如果要求显示所有数据并因此需要进行第二次 api 调用,或者如@ChetanRanpariya 所说的那样按需调用。按需提供更好的性能,因为您只需
get在需要时提供所需的内容。 -
如果我从前一页调用 API 并将数据存储在某处会怎样。每当用户请求该页面时,我都会将其传递给该页面。有可能吗?
标签: c# asp.net-mvc asp.net-web-api