主要电影信息
学习并练习如何使用TMDB API获取电影的详细信息。
我们需要 TMDB API 密钥来访问各个端点,以了解它们的工作方式。在本节课中,我们将首先探索并练习 TMDB 的基础且重要的端点——电影端点。该端点用于获取指定 movie_id 的电影的基本信息。

电影详情
人们选择观看某部电影时,通常会参考一些基本信息,例如剧情简介、片长、评论、评分和受欢迎程度。我们可以使用 电影 端点,并通过路径参数 movie_id 获取电影的主要信息。
当前关注的基地址如下:
1https://api.themoviedb.org/3/movie/{movie_id}?api_key={ourTMDBapikey}
请求参数
此端点支持的查询参数如下:
| 参数名 | 类型 | 可选性 | 描述 |
|---|---|---|---|
| language | 字符串 | 可选 | 使用 ISO_3166_1 代码指定语言,以获取对应语言的翻译数据。仅适用于支持翻译的字段。默认值为 en-US。 |
| append_to_response | 字符串 | 可选 | 用于在单个 HTTP 请求中,将多个请求附加到同一命名空间,从而一次性获取响应。 |
下方代码框展示了基本电影详情端点的用法。我们还将提供包含可选参数的示例。
在运行代码前,请填写 API_KEY 和 MOVIE_ID 的值。虽然我们可以提取并使用应用中的所有有效电影 ID,但目前建议尝试以下推荐的电影 ID:
| 电影名称 | 电影 ID |
|---|---|
| 教父 | 238 |
| 蜘蛛侠:无路可退 | 634649 |
| 小鬼当家 | 10585 |
| 欢乐好声音 | 20413 |
| 超能陆战队 | 177572 |
点击“编辑”,输入 API_KEY 和 MOVIE_ID 的值。别忘了保存!然后点击“运行”按钮,即可获取指定 ID 电影的通用信息。
1import fetch from "node-fetch"; 2 3const API_KEY = '{{API_KEY}}'; 4 5const endpointUrl = new URL('https://api.themoviedb.org/3/movie/{{MOVIE_ID}}'); 6 7const queryParameters = new URLSearchParams({ 8 api_key: API_KEY, 9}); 10 11async function fetchData() { 12 try { 13 endpointUrl.search = queryParameters; 14 const response = await fetch(endpointUrl); 15 16 // 调用打印响应的函数 17 printResponse(response); 18 } catch (error) { 19 // 调用打印错误信息的函数(如有) 20 printError(error); 21 } 22} 23 24// 调用发起 API 请求的函数 25fetchData();
响应字段
电影详情方法的输出是一个 JSON 响应,下表解释了部分响应对象。
| 对象 | 类型 | 描述 |
|---|---|---|
| genres | 数组[对象] | 返回请求电影的所有主题类别,如动作、剧情等。 |
| id | 整数 | 即我们在 GET 请求 URL 中提供的电影 ID。 |
| original_language | 字符串 | 电影原始创作的语言。 |
| original_title | 字符串 | 请求电影的原始标题。 |
| overview | 字符串 或 null | 请求电影的简明、无剧透、简洁的剧情概述。若无描述,则返回 null。 |
| popularity | 数字 | 根据多种因素(如用户投票数或页面访问量)计算得出的数值,反映请求电影的受欢迎程度。 |
| release_date | 字符串 | 请求电影的正式上映日期。 |
| revenue | 整数 | 电影获得的总收入,单位为美元(USD)。 |
| runtime | 整数 或 null | 请求电影的时长,单位为分钟。 |
| tagline | 字符串 或 null | 用于电影海报上的简短而富有吸引力的宣传语,旨在吸引观众注意。 |
| vote_count | 整数 | 请求电影的总投票数。 |
使用可选输入参数
让我们尝试使用可选参数 language 和 append_to_response 运行电影详情端点。
language 参数
我们可以使用电影详情端点,并通过查询参数 language 获取特定语言的电影信息。例如,若希望以法语获取电影信息,可将语言值设为 fr-FR,其中 fr 是语言代码,FR 是国家代码。language 的默认值为 en-US。有关 language 参数的更多详情请参见此处。
要运行以下代码,请复制下方代码,并替换上方可执行代码框中第 7 至 9 行的内容。然后点击“运行”以执行代码。
注意:只有支持翻译的字段才会以指定语言显示输出。
1const queryParameters = new URLSearchParams({ 2 api_key : API_KEY, 3 language : 'en-US' 4});
append_to_response 参数
可选查询参数 append_to_response 允许我们在单个 HTTP 请求中,将多个子请求附加到同一命名空间,而无需发出多个独立请求。这有助于避免 API 调用频率限制,并显著提升开发效率。每个子请求的结果都会作为新的 JSON 对象附加到主响应中。
例如,若希望同时获取电影详情、图片和视频信息,可以使用如下方式:
要运行此示例,请复制下方代码,并替换上方可执行代码框中第 7 至 9 行的内容。然后点击“运行”以执行代码。
1const queryParameters = new URLSearchParams({ 2 api_key : API_KEY, 3 append_to_response : 'images,videos' 4});
该端点对开发者非常有帮助,因为它允许用户在应用页面直接查看电影详情,而无需跳转至外部链接或资源。