Microsoft Graph API 在获取共享点列表时使用过滤器

Microsoft Graph API using filter on get sharepoint lists

我正在尝试过滤共享点列表,但语义似乎与 default semantics 不同。

我已经尝试过的是(带 $ 和不带;单引号和不带引号):

https://graph.microsoft.com/v1.0/sites/root/lists?filter=name eq 'Something'
https://graph.microsoft.com/v1.0/sites/root/lists?$filter=name eq 'Something'
https://graph.microsoft.com/v1.0/sites/root/lists?filter=id eq 'CFFF1460-B4D7-419C-A921-61B5279BBDDC'
https://graph.microsoft.com/v1.0/sites/root/lists?$filter=id eq 'CFFF1460-B4D7-419C-A921-61B5279BBDDC'
https://graph.microsoft.com/v1.0/sites/root/lists?filter=id eq CFFF1460-B4D7-419C-A921-61B5279BBDDC
https://graph.microsoft.com/v1.0/sites/root/lists?$filter=id eq CFFF1460-B4D7-419C-A921-61B5279BBDDC

但所有内容 returns 一个包含所有列表的数组,而不仅仅是符合所需条件的子集。

那么如何过滤共享点列表?

如果您知道要过滤并获得响应的列表的 ID。

您可以 运行 图表 API 像这样查询。

https://graph.microsoft.com/v1.0/sites/root/lists/{list-id}

这将为您提供有关该列表的数据。

如果您需要更多详细信息,请告诉我。

不幸的是(就像 Marc 已经在评论中提到的那样)无法过滤 SharePoint 列表。如果需要,您必须在客户端执行此操作,方法是在没有任何过滤器的情况下读取列表,并对接收到的集合进行 LINQ 语句(或类似语句)。请注意(就像 Graph 中的所有集合一样)您并不总是一次获得所有元素。可能您必须调用上一个响应中的下一个 link 请求,并浏览更多请求和元素,直到找到您需要的内容。

因此,当您找到所需内容时,最好将列表 ID 存储在内存缓存或 Redis 缓存中,以便下次更快地查找,您需要此信息。