演示应用程序
学习如何将 TMDB API 集成到一个示例应用程序中。
我们在前面的章节中已经通过实践掌握了不同电影数据库 API 端点的使用。现在,我们将这些端点整合到一个示例应用中。
工作流程
- 当运行应用程序时,首先看到的是首页。首页包含两个主要部分:导航栏和卡片组件,它们都使用了 API 端点。
- 对于卡片组件,将鼠标悬停在上面可以查看电影或电视剧的基本信息。点击“查看详情”后,会跳转到该电影或电视剧的详情页面。
- 页面左上角显示的各种选项说明如下:
- “MovieTV” 或 “Home”:如果不在首页,则跳转至首页。
- “Movies”:跳转到电影页面,可查看最新、热门、受欢迎、评分最高、即将上映以及正在上映的电影。
- “TV Shows”:跳转到电视剧页面,可查看最新、热门、受欢迎、评分最高、今日播出及正在播出的电视剧。
- “People”:跳转到人物页面,展示 TMDB 上所有受欢迎的人物。
- 在页面右上角,需选择要搜索的对象类型(电影、电视剧或人物),然后在搜索框中输入查询内容,最后点击搜索按钮或按回车键,即可进入结果页面。
演示应用
点击“运行”以启动应用程序,即可与应用进行交互。
注意:以下小部件仅展示了用于说明电影数据库 API 的必要文件。此外,请注意我们创建并使用了一个自定义 Hook
useFetch,用于从任意 API 端点获取数据。
No configuration found for ID: bca32d713bd765d9fb7bedc02e353e0ee6ea2680235fa76b27550e451d455634
代码解析
让我们深入代码,了解如何将 TMDB 的多个端点集成到我们的 React 应用中。
对于我们的 React 应用,index.js 文件将 App 组件(即 App.js)作为根组件进行渲染。
-
首页组件
Home.js在 第 8 行 使用了趋势端点。我们利用该端点在首页展示热门电影和电视剧。 -
结果页面组件
Results.js在 第 12 行 使用了搜索端点。该端点接收媒体类型(电影或电视剧)和用户输入的查询字符串,并返回搜索结果。我们设置了include_adult=false,以过滤掉成人内容。 -
电影页面组件
Movies.js在 第 6 至 10 行 使用了多个端点,包括热门电影、受欢迎电影、高分电影、即将上映电影和正在上映电影,用于展示各类电影集合。 -
电视剧页面组件
TVs.js在 第 6 至 10 行 也使用了多个端点,包括热门电视剧、受欢迎电视剧、高分电视剧、今日播出电视剧和正在播出电视剧,用于展示各类电视剧集合。 -
电影详情页面组件
MovieDetails.js使用以下端点来展示所选电影的详细信息:- 第 10 行:使用主电影详情端点,获取并展示所请求电影的所有基本信息。
- 第 11 行:使用推荐端点,获取并展示与该电影相关的推荐电影列表。
- 第 12 行:使用演员与工作人员端点,获取并展示该电影的全部演职人员信息。
- 第 13 行:使用视频端点,获取并展示该电影的所有视频内容。
-
电视剧详情页面组件
TVDetails.js使用以下端点来展示所选电视剧的详细信息:- 第 10 行:使用主电视剧详情端点,获取并展示所请求电视剧的所有基本信息。
- 第 11 行:使用推荐端点,获取并展示与该电视剧相关的推荐电视剧列表。
- 第 12 行:使用演员与工作人员端点,获取并展示该电视剧的全部演职人员信息。
- 第 13 行:使用视频端点,获取并展示该电视剧的所有视频内容。
-
季度详情页面组件
SeasonDetails.js在 第 10 行 使用季度端点,展示指定电视剧某一季的详细信息。该端点需要提供电视剧的id和season_number,以确定具体是哪一季。 -
集数详情页面组件
EpisodeDetails.js在 第 11 行 使用集数端点,展示指定电视剧某一集的详细信息。该端点需要提供电视剧的id、season_number和episode_number,以确定具体是哪一集。 -
人物详情页面组件
PeopleDetails.js在 第 9 行 使用人物端点,展示所请求人物的详细信息。该端点以person_id为必需参数。我们还在 第 10 行 使用了combined_credits端点,同样以person_id作为必需参数。 -
人物列表页面
People.js在 第 6 行 使用热门人物端点,获取并展示所有受欢迎的人物信息。