使用REST API在Confluence中更新页面

时间:2015-02-19 19:19:18

标签: jira confluence jira-rest-api confluence-rest-api

这是我目前所获得的,它创建了一个新的Confluence页面。它没有更新它。它也会在根空间TST中发布,但我希望它位于TST/space1/subsection2/updateThisPage

curl -v -u admin:admin -X POST -H Content-Type: application/json -d  "{\"id\":\"123456\",\"type\":\"page\",\"title\":\"new page\",\"space\":{\"key\":\"TST\",\"title\":\"updateThisPage\"},\"body\":{\"storage\":{\"value\":\"<p>This is the updated text for the new page</p>\",\"representation\":\"storage\"}},\"version\":{\"number\":3}}" http://localhost:8090/rest/api/content?spaceKey=TST&title=updateThisPage

这是我收到的错误消息

{"statusCode":400,"message":"A page with this title already exists: A page already exists with the title new page in the space with key TST"}

是权限错误吗?我知道我无权删除。

3 个答案:

答案 0 :(得分:6)

使用request / rest / api / content / {id}。

这对我有用。

curl -u admin:admin -X PUT -H "Content-Type: application/json" -d "{\"id\":\"26738701\",\"type\":\"page\",\"title\":\"new page\",\"space\":{\"key\":\"RO\"},\"body\":{\"storage\":{\"value\":\"<p>UPDATE This is a new page</p>\",\"representation\":\"storage\"}},\"version\":{\"number\":2}}" http://localost:10080/rest/api/content/26738701

JSON Payload:

{  
   "id":"26738701",
   "type":"page",
   "title":"new page",
   "space":{  
      "key":"RO"
   },
   "body":{  
      "storage":{  
         "value":"<p>UPDATE This is a new page</p>",
         "representation":"storage"
      }
   },
   "version":{  
      "number":2
   }
}

不要忘记使用:

  • 数据部分中的内容ID
  • 数据部分中的版本号
  • PUT请求
  • 请求中的内容ID

答案 1 :(得分:0)

尝试使用PUT而不是POST。

curl -v -u admin:admin -X PUT -H Content-Type: application/json -d  "{\"id\":\"123456\",\"type\":\"page\",\"title\":\"new page\",\"space\":{\"key\":\"TST\",\"title\":\"updateThisPage\"},\"body\":{\"storage\":{\"value\":\"<p>This is the updated text for the new page</p>\",\"representation\":\"storage\"}},\"version\":{\"number\":3}}" http://localhost:8090/rest/api/content?spaceKey=TST&title=updateThisPage

答案 2 :(得分:0)

如果有人在寻找javascript解决方案,那么这是我对其他问题的回答 Unexpected grunt-http error when posting to Atlassian Confluence api

在这里你可以找到我在汇合黑客马拉松上开发的工作代码 https://github.com/devex-web-frontend/dxWebPlugins/blob/master/src/confluence/helpers/buffer.js