Confluence REST API更新页面

本文关键字:更新 API REST Confluence | 更新日期: 2023-09-27 18:15:19

这是我更新现有页面的代码。JSON中的变量不是问题,因为我可以用这个JSON创建一个页面,没有任何问题。

string json = "{'"type'":'"page'",'"title'":'"" + "Tabelle " + table.Name + "'",'"space'":{'"key'":'"PROG'"},'"ancestors'":[{'"id'":120179837}],'"body'":{'"storage'":{'"value'":'"" + WARNING + table.BasisInfosHtmlString + table.TableStructurHtmlString + table.DependentTablesHtmlString + table.ReferencedInHtmlString + "'",'"representation'":'"storage'"}}}";
var content = new StringContent(json, Encoding.UTF8, "application/json");
var response = Client.PutAsync(@"/rest/api/content", content);

如果我运行这个,我得到服务器错误405。不知道为什么,因为我可以使用POST方法轻松地创建一个页面。

Confluence REST API更新页面

您需要将内容id放在URL中以更新现有页面:put/rest/api/content/{contentId}。

var response = Client.PutAsync(@"/rest/api/content/{contentId}", content);

Ref。: https://docs.atlassian.com/confluence/REST/latest/content-update

这是更新页面的完美代码。感谢mtheriault的回答!

string json = "{'"version'":{'"number'":2},'"type'":'"page'",'"title'":'"" + "Tabelle " + table.Name + "'",'"ancestors'":[{'"id'":120179837}],'"body'":{'"storage'":{'"value'":'"" + WARNING + table.BasisInfosHtmlString + table.TableStructurHtmlString + table.DependentTablesHtmlString + table.ReferencedInHtmlString + "'",'"representation'":'"storage'"}}}";
var content = new StringContent(json, Encoding.UTF8, "application/json");
var response = Client.PutAsync(@"/rest/api/content/" + pageid, content);

如前所述,我必须增加版本号,还必须将pageid放入Uri中。

如果你正在托管API, iis可能会因为几个原因阻塞Put谓词(实际上webday可能是根本原因)

检查此链接ASP。. NET Web API - PUT &不允许删除动词