目前,我们使用以下REST查询获取所有子站点中的所有列表。
'/ _ api / Web / Webs?$ expand = Lists& select = Title,id,ParentWebUrl'
现在我们想获得这些列表中使用的所有内容类型。尝试扩展ContentTypes,但无法使其工作。
任何人都可以帮助获取属于这些列表的内容类型吗?即使按REST查询中的内容类型进行过滤,也可以自行完成。
或者是否有任何方法可以在列表的搜索结果中执行此操作?
答案 0 :(得分:1)
在搜索到处并且在这里没有得到答案后,我得出的结论是没有可能这样做。因此,我使用SharePoint搜索服务来获取结果。
querytext = 'path:"your site collection path" AND (ContentClass:"STS_List_GenericList" OR ContentClass:"STS_List_DocumentLibrary")';
后来我决定将listID添加到查询中,因为我从之前的Item搜索中获取了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,则querytext max字符超过并且未收到任何结果。 在搜索增加最大限制的方法并找出无法做到的方法之后,我将列表ID分成一组75个ID,并为每个集合发送单独的请求,然后将它们组合在一起。 你可以在这里阅读它是如何完成的Batch Search requests
答案 1 :(得分:-1)
这是SharePoint Online租户的REST调用(您未指定版本)。如果您遍历列表并为每个列表调用此列表,则可以总结站点上的内容类型。
https://YOURTENNANT.sharepoint.com/sites/YOURSITE/_api/lists/getbytitle('YOURLISTNAME')/contenttypes