获取 SharePoint 列表内容类型

Getting SharePoint List Content Types

目前我们正在使用以下 REST 查询获取所有子站点中的所有列表。

'/_api/Web/Webs?$expand=Lists&select=Title,id,ParentWebUrl'

现在我们还想获取这些列表中使用的所有内容类型。尝试扩展 ContentTypes,但无法正常工作。

任何人都可以帮助获取属于这些列表的内容类型吗?即使在 REST 查询中按内容类型过滤,它本身也很好。

或者有什么方法可以在列表的搜索结果中做到这一点?

在到处搜索并没有在这里得到答案之后,我得出的结论是不可能这样做。因此,我使用 SharePoint 搜索服务来获取我的结果。

querytext = 'path:"your site collection path" AND (ContentClass:"STS_List_GenericList" OR ContentClass:"STS_List_DocumentLibrary")';

后来我决定将 listID 添加到查询中,因为我从之前的项目搜索中获取了 ListID。

querytext = '(ListID:"Your list1 ID" OR ListID:"Your list2 ID" OR ListID:"Your listn ID")" AND (ContentClass:"STS_List_GenericList" OR ContentClass:"STS_List_DocumentLibrary")';

现在的问题是,如果列表 ID 超过 75 个,查询文本的最大字符数就会超过,并且不会收到任何结果。 想办法提高最大限制,发现没有办法,我将列表ID分成一组75个ID,每组分别发送请求,然后合并在一起。 你可以在这里阅读它是如何完成的 Batch Search requests

这是对 SharePoint Online 租户的 REST 调用(您未指定版本)。如果您遍历您的列表并为每个列表调用此方法,您可以总结您网站上的内容类型。

https://YOURTENNANT.sharepoint.com/sites/YOURSITE/_api/lists/getbytitle('YOURLISTNAME')/contenttypes