使用REST API更新Wiki页面

时间:2013-05-09 00:08:30

标签: sharepoint sharepoint-2013

如何使用REST API更新SharePoint 2013维基页面?

三种排列:

  • 阅读现有网页(仅限内容)
  • 更新现有网页
  • 创建新页面

对于阅读现有页面,我当然可以只是对正确的URL进行“获取”,但这也会使维基页面上的实际数据周围的所有各种装饰失效 - 而不是自己捕获,如果有可能获得内容,那将会更好。

是否有特殊的端点是REST API,允许在Wiki页面上执行这三个操作中的任何一个?

2 个答案:

答案 0 :(得分:3)

正如GMasucci的帖子所述,似乎没有一种干净或明显的方式通过REST API实例化页面。

您可以从位于http:// [site] /_vti_bin/Lists.asmx的SOAP服务调用AddWikiPage方法。这是一种开箱即用的服务,除非因任何原因被特别锁定,否则将无法访问。

要通过REST API读取Wiki页面的内容,您可以使用以下端点:

的https:// [SITEURL] /_vti_bin/client.svc/Web/GetFileByServerRelativeUrl( '/page/to/wikipage.aspx')/ ListItemAllFields

内容包含在WikiContent字段中。您可能希望向该URL添加一个select并将其作为JSON返回,以减少在需要考虑的情况下传递的数据量。

至于更新现有维基页面的内容,这不是我尝试过的东西,但我想它就像通过REST API填充另一个字段一样。这就是我期望的方式:

对上述

的端点执行HTTP POST

使用以下HTTP标头:

  • Cookie =“yourauthcookie”
  • Content-Type =“application / json; odata = verbose”
  • X-RequestDigest =“yourformdigest”
  • X-HTTP-Method,“MERGE”
  • If-Match =“来自入口节点的etag值,从GET返回到上述端点”

发布以下JSON正文

{
 "__metadata": { "type": "SP.Data.SitePagesItem" },
 "WikiField" : "HTML entity coded wiki content goes here"
}

答案 1 :(得分:1)

我发现的临时答案是不使用REST,因为它似乎不是

  • 完整记录
  • 功能齐全
  • 以相同的方式支持Sharepoint 2013和On-line

因此,我目前的建议是利用SOAP服务来实现相同的目标,因为这些服务更易于记录并且易于访问。