如何通过SharePoint REST API获取指定页面中的4个列表项?
你当前调用的API是查询Site Pages库(存储SharePoint页面的容器)里的页面项,所以会返回所有符合PromotedState eq 2的页面——这和你要获取的「页面里展示的4个列表项」不是同一个东西,页面里的列表内容来自另一个独立的SharePoint列表,而非Site Pages库本身。
要获取页面内嵌的那4个列表项,你可以按以下两种方式操作:
方法一:直接调用目标列表的API(推荐)
- 先确定页面上列表Web Part对应的目标列表名称:
- 进入页面编辑模式,找到展示那4个项的列表Web Part,点击「编辑Web Part」,在属性面板里查看关联的列表名称(比如可能叫「新闻动态」「公告列表」之类的)。
- 用目标列表名称构造API请求:
如果列表有特定视图(比如页面里展示的是某个自定义视图的内容),可以直接调用视图的接口:https://abc.sharepoint.com/teams/OneTeam/_api/Web/lists/getbytitle('目标列表名称')/items?$select=BannerImageUrl,Description,Titlehttps://abc.sharepoint.com/teams/OneTeam/_api/Web/lists/getbytitle('目标列表名称')/views/getbytitle('视图名称')/viewitems?$select=BannerImageUrl,Description,Title
方法二:通过页面Web Part获取关联列表信息(适合不知道目标列表的情况)
如果不确定目标列表名称,可以先获取页面的Web Part配置,从中提取列表信息:
- 调用接口获取页面的所有Web Part:
https://abc.sharepoint.com/teams/OneTeam/_api/Web/GetFileByServerRelativeUrl('/teams/OneTeam/SitePages/Newsfeed-page.aspx')/GetLimitedWebPartManager(scope=0)/WebParts - 在返回的JSON结果中,找到对应列表Web Part的
XmlDefinition字段,里面会包含目标列表的ID(<ListId>标签)或名称,以及视图配置。 - 用提取到的列表ID/名称,再调用方法一中的列表接口获取数据。
内容的提问来源于stack exchange,提问作者R.R
相关产品推荐
相关产品推荐

