获取SharePoint列表内容类型

时间:2017-07-11 05:23:05

标签: sharepoint-online

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

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

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

任何人都可以帮助获取属于这些列表的内容类型吗?即使按REST查询中的内容类型进行过滤,也可以自行完成。

或者是否有任何方法可以在列表的搜索结果中执行此操作?

2 个答案:

答案 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