在列出文件夹的内容时,或在请求单个驱动器项目的元数据时,我想检索每个文件的最新文件版本标识符。
DriveItem
资源不包含任何version
信息,仅通过附加API调用即可检索单个项目的版本。
当我列出一个包含多个文件的文件夹时,我想避免对每个文件进行额外的 API 调用。
是否有一种有效的方法来检索列表(或单个文件)的最新版本 ID,而无需执行额外的 API 请求,尤其是在文件夹内容列表的情况下无需执行 n + 1 请求?
您可以使用JSON Batching减少调用次数。这将允许您一次返回最多 20 个文件的
versions
。
一种技术是在
$top=20
查询上设置 /children
,然后为每个 DriveItems
提交批量请求。批处理完成后,您可以请求下一页的 @odata.nextLink
并重复批处理过程。这会将您的调用减少到每页数据仅 2 次。
您可以使用
$expand=versions
查询选项来查询所有版本以及 DriveItem 信息。这将列出该项目的所有版本,您可以选择第一个版本来获取最新版本。
示例图形浏览器查询如下所示:
https://graph.microsoft.com/v1.0/me/drives/{drive-id}/items/{item-id}?$expand=versions