【发布时间】:2019-08-17 13:35:50
【问题描述】:
我正在构建一个小应用程序,除其他外,它会显示所有 cmets 的按时间顺序供稿,并回复他们工作的 Google Drive 帐户上的文件。稍后我将构建一些自定义过滤器,例如,用户可以只看到他们被@提及的 cmets 和回复。
现在,要获取该数据,有一个 Google Drive API 端点来获取 list of Drive files for a given user,例如:
GET https://www.googleapis.com/drive/v3/files?orderBy=modifiedTime%20desc&pageSize=20&fields=*
还有一个用于获取 a list of comments on a given file 的 Google Drive API 端点。示例:GET https://www.googleapis.com/drive/v3/files/fileId/comments。每条评论都有一个 replies 属性,其中包含对该评论的回复数组。
我现在正在做的是:
- 获取用户最近的 20 个 Google Drive 文件(第一个端点)
- 对于 20 个 Drive 文件中的每一个文件,获取该文件(第二个端点)的 cmets 列表,将其转储到 cmetsAndReplies 数组中。
- 对于每个(通常总共 30-40+ 个 cmets),运行一个 forEach 以获取每个评论的所有回复,将每个回复转储到 cmetsAndReplies 数组中。
对于像我这样的简单用例来说,这似乎有点过分。我查看了文档,找不到更适合我的用例的东西 - 例如,我认为隐藏在 Google Drive 中的单个文件元数据可能是 comments 属性,所以我只需要进行一次 fetch 调用 -但没有这样的运气。
我是否缺少一些 Google Drive 端点来提高效率,或者我可以通过其他方式提高效率?我将尝试在重新加载时合并一些差异类型检查,这样我就不必在每次用户重新加载时都发出所有这些 API 请求(我使用 map 和 Promise.all 合并了一些批处理来限制我的 API 请求,但我'我仍然偶尔会收到 403 API 速率限制错误),但我觉得我可能遗漏了一些东西。
【问题讨论】:
标签: javascript google-drive-api