我正在使用 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 集的所有节目,所以我不添加任何其他过滤器,除了状态(在我的例子中:已结束)
第一次调用 (tv-discover) 找到 ~60k 个结果,分为 ~3k 页(每页 20 个元素 - 这无法更改)
然后我必须为每个页面再次调用 tv-discover 方法
对于
results
数组中的每个元素,我必须调用 tv-details,这样我就可以过滤 8 集的结果。
这显然是不可持续的,因为它需要几分钟(如果不是几小时)才能完成。我考虑过在
MatCard
中显示节目信息,可能是通过使用无限滚动技术。处理这种情况的最佳方法是什么?我正在使用 Angular 15.
我很抱歉成为发布坏消息的人,但是如果您被迫使用的 API 不提供选择/过滤功能,那您就不走运了。
我的第一个建议是为 API 团队创建一个问题,并要求添加该功能。
我的第二个要求是回击你的产品所有者/利益相关者,并询问他们这个功能对他们有多重要。值得10个小时吗?值100吗? 1,000?
最后,如果不实现此功能你的世界将结束,那么我建议你编写一个 ETL 应用程序将所有这些数据放入你自己的数据存储中,一个提供选择/过滤功能的应用程序,即某种类型的数据库.这意味着后端编程,但它会起作用。
我知道这有点没有答案,我不会责怪任何对此投反对票的人,但我相信对于开发人员来说,能够时不时地用现实来反击利益相关者是很重要的时间。我们常常盲目地跳下悬崖,以牺牲我们的理智来满足不切实际的要求。
如果我遗漏了什么,请告诉我。除了回复之外,您可能还想发布您的请求。
祝你好运。