使用 REST 在 Confluence 中更新页面 API

Update a page in Confluence using REST API

这是我目前得到的,它创建了一个新的 Confluence 页面。它不会更新它。它还将其发布在根 space、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"}

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

尝试使用 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

使用请求/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 负载:

{  
   "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

如果有人正在寻找 javascript 解决方案,这是我对另一个类似问题的回答

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