在过滤 SP 库内的文件时,我遇到了有关 OData 属性
filter
的 Graph API 问题。
由于某种原因,该属性根本不过滤,尽管它是必需的(不带
filter
属性调用会导致 400 BadRequest
)。我第一次遇到这个问题是在 2024 年 12 月 17 日,它仍然存在。
我成功重现该问题的步骤:
design.json
、images.json
、remoteEndpoints.json
、questions.json
。)https://graph.microsoft.com/v1.0/sites/{siteId}/drives/{driveId}/items?$filter=name eq 'images.json'
images.json
。库中文件较多时,该问题似乎仍然存在。我已经在多个租户上测试了这个问题,结果相同。该问题似乎并不归因于特定客户端,因为它出现在我们的 PROD 代码(作为 Azure 函数托管)和 Graph Explorer 中。出现此问题的 PROD 代码自 2024 年 7 月以来一直在运行,没有任何更改,也没有任何问题。
我尝试调查 Graph API 的已知问题,其中有一个关于所有 OData 查询的已知问题线程,不幸的是,我找不到任何提及此问题的信息。
是我做错了什么,还是服务本身有问题?
谢谢大家的建议!
过滤
driveItems
从来没有不能正常工作。我建议使用 /v1.0/search/query
端点来搜索文件
POST https://graph.microsoft.com/v1.0/search/query
{
"requests": [
{
"entityTypes": [
"driveItem"
],
"query": {
"queryString": "filename:images.json AND path:\"https://contoso.sharepoint.com/sites/<site_name>\""
}
}
]
}
使用
path
中的queryString
,您可以减少对特定站点(文档库甚至特定文件夹)的搜索