1

在 Microsoft Graph SDK for .NET 的帮助下,我想枚举我的根站点(例如 http://mydomain.sharepoint.com)中的所有文档库,并为每个文档库枚举它们的列定义。

由于我需要这些列,因此我不能使用查询“/sites/{site-id}/drives”,因为它将返回没有任何列的 Drive 对象。因此,我发现执行此操作的唯一方法是根据 API 参考使用模板属性设置为“documentLibrary”的过滤器查询所有列表:https ://developer.microsoft.com/en-us/graph/docs/ api-reference/v1.0/resources/list

在图形资源管理器中,适当的查询似乎是:“https://graph.microsoft.com/v1.0/sites/root/lists?$filter=list/template eq 'documentLibrary'”但它发回一个错误(没有 ' 围绕 documentLibrary 相同)。但是我没有找到任何方法来做到这一点,无论是使用 .NET SDK 还是图​​形资源管理器。

欢迎任何帮助,提前谢谢你

使用模板过滤器请求列表的 C# 方法

4

1 回答 1

1

SharePoint 列表上的图形 API 不支持筛选或排序结果。当 Microsoft Graph 看到它不期望的查询参数时,它会简单地忽略未知的过滤器参数并向我们返回未过滤的结果;或者它只是返回不支持的提示。list api 支持 $expand, $select OData 查询参数自定义响应

使用 select 和 expand 语句,您可以在单个请求中检索列表元数据、列定义和列表项。

当前可用的文档仅说明:

对 $filter 运算符的支持因 Microsoft Graph API 而异。

不同的词是推断这些选项并非在所有产品中都完全支持。

因此,如果您请求v1.0/sites/root/lists?$filter=list/template eq 'documentLibrary'您将收到以下响应消息:

"message": "不支持提供的过滤器语句"

你需要改变你的设计。同时,您可以在User Voice中对现有功能请求进行投票或提交新功能请求。

于 2018-09-23T00:48:13.220 回答