创建、列出和获取文件请求
学习如何创建、列出以及获取文件请求的总数。
在本节课中,我们将学习 file_requests 命名空间的一些重要端点。这些端点需要启用 file_requests.read 和 file_requests.write 权限。我们将讨论以下端点操作:
createlistcount
创建文件请求
我们首先探索 /file_requests/create 端点。该端点用于发起一个请求,为传入请求头(headers)中访问令牌所对应的用户创建一个文件。这是一个 HTTP POST 请求。
请求参数
以下是请求中一些重要参数的说明及其格式:
| 参数名称 | 格式 | 是否必需 | 描述 |
|---|---|---|---|
| title | 字符串 | 是 | 指定请求文件的名称。 |
| destination | 字符串 | 是 | 定义要在 Dropbox 文件夹中创建或保存文件的路径。路径格式应为 "/(. |
| deadline | 对象 | 否 | 仅专业和企业账户可用。 |
| open | 布尔值 | 否 | 指示此文件是否开放。如果文件关闭,则无法提交内容。默认值为 true。 |
| description | 字符串 | 否 | 定义文件请求的描述信息。 |
以下是该端点的代码示例。执行代码后,文件 ID 将自动提取出来。我们在下一节课中需要用到这个文件 ID,因此请把它记录下来。
1// 定义导入库 2import fetch from 'node-fetch'; 3 4// 定义 API 密钥 5const token = '{{TOKEN}}' 6 7// 定义端点 URL 8const endpointUrl = new URL('https://api.dropboxapi.com/2/file_requests/create'); 9 10// 定义请求头参数 11const headerParameters = { 12 'Authorization': `Bearer ${token}`, 13 'Content-Type': 'application/json', 14}; 15 16// 定义请求体参数 17const bodyParameters = JSON.stringify({ 18 title: "demoFileByAPI", 19 destination: "/home", 20 open: true, 21 description: "我们使用 API 调用创建了此请求。" 22}); 23 24// 设置 API 调用选项 25const options = { 26 method: 'POST', 27 headers: headerParameters, 28 body: bodyParameters, 29}; 30 31// 定义 API 调用函数 32async function fetchRequest() { 33 try { 34 const response = await fetch(endpointUrl, options); 35 36 // 自定义函数:打印 API 响应 37 printResponse(response); 38 } catch (error) { 39 // 自定义函数:打印错误信息 40 printError(error); 41 } 42} 43 44// 调用函数发起 API 请求 45fetchRequest();
上述代码中,我们执行了以下操作:
- 第 2 行:从
node-fetch导入fetch库。 - 第 5 行:获取用于身份验证的
TOKEN值。 - 第 8 行:定义请求 URL。
- 第 11–13 行:定义
fetch请求的请求头,包含授权信息和内容类型(通常为application/json)。 - 第 17–22 行:定义请求体参数。
- 第 25–29 行:设置 API 调用选项。
- 第 32–42 行:创建一个函数来发起 API 调用。它会尝试获取响应,并将响应传递给自定义函数
printResponse;若出错,则捕获异常并传递给printError函数。 - 第 45 行:调用
fetchRequest函数以发起 API 请求。
响应字段
现在我们前往 Dropbox 控制台,从侧边菜单中选择“文件请求”选项。我们的文件请求将在此处显示。
让我们查看以下响应字段:
| 字段 | 格式 | 描述 |
|---|---|---|
| id | 字符串 | 文件的唯一标识 ID。 |
| url | 字符串 | 我们创建的文件的链接;任何拥有此链接的人都可以向我们的 Dropbox 上传文件。 |
| title | 字符串 | 在调用中指定的文件标题。 |
| destination | 格式为 "/(. | [\r\n])*" 的字符串 |
| is_open | 布尔值 | 表示文件的状态,是开放还是关闭。如果文件关闭,则无法上传内容。 |
列出所有文件请求
接下来,我们列出特定用户的全部文件请求。/file_requests/list 端点需要启用 file_requests.read 权限。该调用无需任何参数,以下是实现代码:
1// 定义导入库 2import fetch from 'node-fetch'; 3 4// 定义 API 密钥 5const token = '{{TOKEN}}' 6 7// 定义端点 URL 8const endpointUrl = new URL('https://api.dropboxapi.com/2/file_requests/list'); 9 10// 定义请求头参数 11const headerParameters = { 12 'Authorization': `Bearer ${token}`, 13 'Content-Type': 'application/json', 14}; 15 16// 设置 API 调用选项 17const options = { 18 method: 'POST', 19 headers: headerParameters, 20 body: 'null' 21}; 22 23// 定义 API 调用函数 24async function fetchRequestList() { 25 try { 26 const response = await fetch(endpointUrl, options); 27 // 自定义函数:打印 API 响应 28 printResponse(response); 29 } catch (error) { 30 // 自定义函数:打印错误信息 31 printError(error); 32 } 33} 34 35// 调用函数发起 API 请求 36fetchRequestList();
上述代码中,我们执行了以下操作:
- 第 2 行:从
node-fetch导入fetch库。 - 第 5 行:获取用于身份验证的
TOKEN值。 - 第 8 行:定义请求 URL。
- 第 11–13 行:定义
fetch请求的请求头,包含授权信息和内容类型(通常为application/json)。 - 第 17–21 行:设置 API 调用选项。
- 第 24–33 行:创建一个函数来发起 API 调用。它会尝试获取响应,并将响应传递给
printResponse函数;若出错,则捕获异常并传递给printError函数。 - 第 36 行:调用
fetchRequestList函数发起 API 请求。
成功执行上述代码后,将返回所有文件请求及其属性的列表。
响应字段
大多数响应字段与之前讨论的内容相同。但以下是一些 list 端点的重要响应字段:
| 字段 | 格式 | 描述 |
|---|---|---|
| id | 字符串 | 文件请求的唯一 ID。 |
| is_open | 布尔值 | 表示文件请求是否开放。 |
| file_count | 整数 | 使用该文件请求关联的 URL 上传的文件总数。 |
list 端点返回的文件 ID 可用于通过 /file_requests/get 端点获取单个文件请求的详细信息。该 ID 将出现在 data 对象中。
获取文件请求总数
file_requests 命名空间中的 /file_requests/count 端点非常简单。它不接受任何参数,直接返回当前用户的所有文件请求总数。
1// 定义导入库 2import fetch from 'node-fetch'; 3 4// 定义 API 密钥 5const token = '{{TOKEN}}' 6 7// 定义端点 URL 8const endpointUrl = new URL('https://api.dropboxapi.com/2/file_requests/count'); 9 10// 定义请求头参数 11const headerParameters = { 12 'Authorization': `Bearer ${token}`, 13 'Content-Type': 'application/json', 14}; 15 16// 设置 API 调用选项 17const options = { 18 method: 'POST', 19 headers: headerParameters, 20 body: 'null' 21}; 22 23// 定义 API 调用函数 24async function fetchTotalRequests() { 25 try { 26 const response = await fetch(endpointUrl, options); 27 // 自定义函数:打印 API 响应 28 printResponse(response); 29 } catch (error) { 30 // 自定义函数:打印错误信息 31 printError(error); 32 } 33} 34 35// 调用函数发起 API 请求 36fetchTotalRequests();
上述代码中,我们执行了以下操作:
- 第 2 行:从
node-fetch导入fetch库。 - 第 5 行:获取用于身份验证的
TOKEN值。 - 第 8 行:定义请求 URL。
- 第 11–14 行:定义
fetch请求的请求头,包含授权信息和内容类型(通常为application/json)。 - 第 17–21 行:设置 API 调用选项。
- 第 24–33 行:创建一个函数来发起 API 调用。它会尝试获取响应,并将响应传递给
printResponse函数;若出错,则捕获异常并传递给printError函数。 - 第 36 行:调用
fetchTotalRequests函数发起 API 请求。
响应
上述代码将返回当前用户的所有文件请求总数。