如何使用SharePoint 2013 REST API分别获取讨论列表的问题与回复
没问题!我来给你详细拆解怎么用SharePoint 2013的REST API分别获取讨论列表里的问题和回复,步骤都很直观~
获取讨论列表中的问题
讨论列表里的「问题」是列表的根级项目,对应的内容类型默认是「讨论」(中文环境)或者「Discussion」(英文环境)。你可以通过以下REST请求来获取所有问题:
请求示例(GET)
/_api/web/lists/getbytitle('你的讨论列表名称')/items?$filter=ContentType/Name eq '讨论'&$select=Id,Title,Body,Created,Author/Title&$expand=Author
关键说明:
- 把
你的讨论列表名称替换成实际的列表名称,比如「团队讨论区」 $filter用来筛选出内容类型为「讨论」的项目,确保只拿到问题而非回复$select指定你需要返回的字段,比如标题、内容、创建时间、作者名称$expand=Author用来关联获取作者的信息(默认REST不会返回关联字段的详细内容)- 请求头部需要包含
Accept: application/json;odata=verbose,这样返回的是JSON格式的结构化数据
获取指定问题的回复
回复是关联到对应问题的子项目,默认内容类型是「消息」(中文)或者「Message」(英文),通过ParentItemId字段绑定到父问题的Id。
请求示例(GET)
假设你要获取Id为123的问题的所有回复,请求如下:
/_api/web/lists/getbytitle('你的讨论列表名称')/items?$filter=ParentItemId eq 123 and ContentType/Name eq '消息'&$select=Id,Title,Body,Created,Author/Title&$expand=Author&$orderby=Created asc
关键说明:
- 把
123替换成目标问题的实际Id $filter同时筛选ParentItemId匹配问题Id和内容类型为「消息」,确保只拿到该问题的回复$orderby=Created asc可以让回复按创建时间正序排列,符合讨论区的阅读逻辑- 同样需要带上
Accept: application/json;odata=verbose的请求头部
额外提示:
如果需要一次性获取某个问题及其所有回复,也可以先拿到问题数据,再根据其Id发起回复请求;或者使用$expand关联查询(不过SharePoint 2013的REST对父子项的直接expand支持有限,分开请求更稳妥)
内容的提问来源于stack exchange,提问作者Vijayalakshmi
相关产品推荐
相关产品推荐

