【问题标题】:Getting SharePoint List Content Types获取 SharePoint 列表内容类型
【发布时间】:2017-07-11 05:23:05
【问题描述】:

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

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

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

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

或者有没有办法在列表的搜索结果中做到这一点?

【问题讨论】:

    标签: sharepoint-online


    【解决方案1】:

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

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

    后来我决定将 listIDs 添加到查询中,因为我从以前的 Item 搜索中获取 ListIDs。

    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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 请阅读How to answer 主题。由于您的回答涵盖了问题,因此值得详细说明。
      • @vhristoskov - 这是一个 REST 调用,而不是指向另一个答案的链接。 Flexicoder,请解释为什么这不是答案。选定的答案说这是不可能的。 Potapov - 我添加了更多细节以更好地解释答案。谢谢。
      猜你喜欢
      • 1970-01-01
      • 2010-11-19
      • 1970-01-01
      • 1970-01-01
      • 2013-08-11
      • 1970-01-01
      • 2020-03-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多