在 Angular 中处理多个 API 请求的最佳方式(无后端)

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

我正在使用 GitHub pages 制作一个网站来查找电视剧:用户可以通过许多运算符进行过滤,包括剧集和季节的数量。我正在使用 TMDB API,我进行的第一个调用是:https://developers.themoviedb.org/3/discover/tv-discover:这不允许我按 eps 和季节的数量进行过滤。在这个调用之后,我提取 ID,并为每个 ID 调用:https://developers.themoviedb.org/3/tv/get-tv-details,这允许我按 eps 和季节进行过滤。如果我想按ep和seasons过滤,这个方法也得到了API开发者的确认

示例:我想找到正好有 8 集的所有节目,所以我不添加任何其他过滤器,除了状态(在我的例子中:已结束)

  1. 第一次调用 (tv-discover) 找到 ~60k 个结果,分为 ~3k 页(每页 20 个元素 - 这无法更改)

  2. 然后我必须为每个页面再次调用 tv-discover 方法

  3. 对于

    results
    数组中的每个元素,我必须调用 tv-details,这样我就可以过滤 8 集的结果。

这显然是不可持续的,因为它需要几分钟(如果不是几小时)才能完成。我考虑过在

MatCard
中显示节目信息,可能是通过使用无限滚动技术。处理这种情况的最佳方法是什么?我正在使用 Angular 15.

angular api github-pages infinite-scroll
1个回答
0
投票

我很抱歉成为发布坏消息的人,但是如果您被迫使用的 API 不提供选择/过滤功能,那您就不走运了。

我的第一个建议是为 API 团队创建一个问题,并要求添加该功能。

我的第二个要求是回击你的产品所有者/利益相关者,并询问他们这个功能对他们有多重要。值得10个小时吗?值100吗? 1,000?

最后,如果不实现此功能你的世界将结束,那么我建议你编写一个 ETL 应用程序将所有这些数据放入你自己的数据存储中,一个提供选择/过滤功能的应用程序,即某种类型的数据库.这意味着后端编程,但它会起作用。

我知道这有点没有答案,我不会责怪任何对此投反对票的人,但我相信对于开发人员来说,能够时不时地用现实来反击利益相关者是很重要的时间。我们常常盲目地跳下悬崖,以牺牲我们的理智来满足不切实际的要求。

如果我遗漏了什么,请告诉我。除了回复之外,您可能还想发布您的请求。

祝你好运。

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