我正在嘗試使用Confluence REST API來更正Confluence站點上頁面的樹結構。我可以手動執行此操作,但是有相當多的頁面,並且我已經在另一個XML文件中擁有樹結構。如何將頁面作爲Confluence中另一頁的子頁面添加 - REST API
目前我能夠使用合流REST API上傳頁面和圖像。定義位於here。
我試圖使用/rest/api/content/{id}
PUT命令。這要求內容在請求的正文中。附加從先前的GET請求中收到的內容,我發現我必須更新版本計數。
以上所有的作品。然而,似乎並沒有將其添加到祖先列表中。如果我將父頁面添加到祖先列表中,則會返回格式錯誤報告。
如果我手動將頁面附加到另一個頁面並請求其內容,我發現該父項在祖先列表中出現兩次。歷史數量也不會增加。
產生的JSON從該頁面的GET請求返回:
http://someconfluencesite.com/rest/api/content/10031361?expand=ancestors (200)
{
"id" : "10031361",
"type" : "page",
"title" : "Automatic Action Usage Updates",
"ancestors" : [{
"id" : "10031327",
"type" : "page",
"title" : "Action Lists"
}, {
"id" : "10031327",
"type" : "page",
"title" : "Action Lists"
}, {
"id" : "10031328",
"type" : "page",
"title" : "Actions Tab"
}, {
"id" : "10031327",
"type" : "page",
"title" : "Action Lists"
}, {
"id" : "10031327",
"type" : "page",
"title" : "Action Lists"
}, {
"id" : "10031328",
"type" : "page",
"title" : "Actions Tab"
}
]
}
樹這是如下所示:
- 空間
- 動作列表
- 操作選項卡
- 自動操作使用更新
- 操作選項卡
- 動作列表
這使我相信我使用了錯誤的命令。
我試圖聯繫Confluence支持,但是他們的授權郵件沒有收到我的收件箱。所以我來到這裏:)
所以我的問題是在匯合中創建頁面樹的REST調用是什麼?之後,請求體的格式是什麼?
編輯: 以下PUT請求獲取成功的返回碼。然而,返回的對象並沒有附加祖先(並非不尋常,因爲在所有GET請求中,您必須展開才能獲得它)。版本號不會更新。這兩頁也沒有互相鉤住。
{
"id":"10552520",
"type":"page",
"title":"Correct Page Title",
"ancestor":[
{
"id":"10552522",
"type":"page"
}],
"version":
{
"number":"2"
}
}
雖然刪除頁面的所有內容,但上面所做的好事。
以下POST調用會導致正在創建的頁面,但沒有祖先。祖先存在與id提供。奇怪的是,這也是在頁面中沒有任何內容的情況下創建的。
{
"type":"page",
"title":"Correct Title",
"space":{"key":"SpaceKey"},
"ancestor":[{"id":"10553655","type":"page"}],
"body":{"storage":{"value":"<p>New Page </p>","representation":"storage"}}
}
將上面的代碼放入REST API瀏覽器中也會導致子代未連接到父級。
可能的相關性:https://answers.atlassian.com/questions/5278993/updating-a-confluence-page-with-rest-api-problem-with-ancestors和https:// JIRA。 atlassian.com/browse/CRA-487。我明白你的問題是關於修復現有頁面的層次結構,但在未來,它可能更容易只是[在正確的位置創建它們](http://stackoverflow.com/questions/23523705/how-to-create第一個地方是使用他們的休息-api/23526357#comment36097279_23526357)。 :-) – 2015-02-12 02:30:30
根據Confluence的資料,PUT命令*應該*能夠將頁面移動到另一個父頁面。到底什麼是「格式錯誤」?就我所見,爲了移動頁面,祖先列表應該包含對所需父頁面的pageId的單一引用。 – 2015-02-12 02:40:50
@ScottDudley最初上傳正確的樹結構是最好的。我只是無法理解如何獲得正確的祖先列表。我附加了從已經構建的樹中返回給我的JSON(爲簡潔起見,我已經減少了它)。我看不出它與我擁有的樹有什麼關係。我列出的樹的JSON是什麼? – Jason 2015-02-12 22:44:20