导入
在 Deezer 上探索流派
了解如何使用 Deezer API 来探索不同的音乐流派。
获取 Deezer 上可用的音乐流派
Genre 端点为我们提供了所有流派的 ID、名称和图片 URL。通过此端点,我们可以了解 Deezer 平台上有哪些可用的音乐流派。
...
查找流派的端点
该端点的基础 URL 为:
1https://api.deezer.com/genre
注意:此端点无需用户访问令牌即可返回有效响应,且不包含任何请求参数。
以下代码调用了 Genre 端点。点击“运行”按钮查看响应结果。
1// 导入所需库 2import fetch from "node-fetch" 3 4// 定义端点 URL 5const endpointUrl = new URL("https://api.deezer.com/genre"); 6 7const headerParameters = { 8 contentType: "application/json", 9}; 10 11// 设置 API 请求选项 12const options = { 13 method: "GET", 14 headers: headerParameters, 15}; 16 17// 发起 API 请求的函数 18async function fetchGenre() { 19 try { 20 const response = await fetch(endpointUrl, options); 21 // 打印响应结果 22 printResponse(response); 23 } catch (error) { 24 // 打印错误信息 25 printError(error); 26 } 27} 28 29// 调用函数发起 API 请求 30fetchGenre();
让我们简要分析上述代码:
- 第 5 行:我们将端点 URL 存储在
endpointUrl变量中。 - 第 20 行:我们使用
fetch函数发起 API 请求。 - 第 22 行:如果请求成功,
printResponse()函数会将 API 返回的响应打印到控制台。 - 第 25 行:如果请求过程中出现异常,
printError()函数会将错误信息打印到控制台。
注意:
printResponse()和printError()函数在后端实现,对用户隐藏。
该端点返回一个 Genre 对象列表,每个 Genre 对象包含以下字段:
响应字段
| 字段名 | 类型 | 描述 |
|---|---|---|
| id | 整数 | 流派的唯一标识 ID |
| name | 字符串 | 流派名称 |
| picture | URL | 流派图片的链接地址 |
获取特定流派的详细信息
现在我们可以使用任意 genre_id 调用此端点,获取指定流派的详细信息。
...
查找特定流派的端点
该端点的基础 URL 为:
1https://api.deezer.com/genre/id
路径参数 id 需替换为想要查询的流派 ID。
请求参数
| 参数 | 类型 | 类别 | 描述 |
|---|---|---|---|
| id | 整数 | 必填 | 流派的唯一标识 ID,作为路径参数传递 |
根据下表可知,“Pop” 流派的 ID 为 “132”。我们可以使用该 ID 通过此端点获取更详细的流派信息。
流派 ID 列表
| 流派名称 | 流派 ID |
|---|---|
| Pop | 132 |
| Rap/Hip Hop | 116 |
| Rock | 152 |
请将本课程代码模块中的 第 5 行 替换为以下内容,并点击“运行”按钮查看响应结果:
1const endpointUrl = new URL("https://api.deezer.com/genre/132");
获取特定流派下的艺术家列表
我们可以使用 genre/artists 方法获取某一特定流派下的所有艺术家。调用此端点将返回该流派下的全部艺术家列表。
...
查找特定流派下所有艺术家的端点
该端点的基础 URL 为:
1https://api.deezer.com/genre/id/artists
请求参数
| 参数 | 类型 | 类别 | 描述 |
|---|---|---|---|
| id | 整数 | 必填 | 流派的唯一标识 ID,作为路径参数传递 |
接下来,我们查找 Pop 流派下的所有艺术家。请将本课程代码模块中的 第 5 行 替换为以下内容,并点击“运行”按钮查看响应结果:
1const endpointUrl = new URL("https://api.deezer.com/genre/132/artists");
该端点返回一个艺术家对象列表,每个对象包含以下信息:
响应字段
| 字段名 | 类型 | 描述 |
|---|---|---|
| id | 整数 | 艺术家的唯一标识 ID |
| name | 字符串 | 艺术家名称 |
| picture | URL | 艺术家图片的链接地址 |
| radio | 布尔值 | 若艺术家拥有智能电台,则值为 true,否则为 false |