Создание страницы с помощью макроса IFrame с использованием Confluence API - PullRequest
0 голосов
/ 11 апреля 2020

Я использую следующий простой вызов curl для создания новой страницы Confluence со встроенным макросом IFrame, который ссылается на внешний сайт:

curl -u <username>:<password> -X POST -H 'Content-Type: application/json' -d '{"type":"page","title":"A Test Page", "space":{"key":"SPACE"}, "ancestors" : [ { "id": "115328548" } ],"body":{"storage":{"value":"<h1>IFrame Macro Test</h1><p>Foo Bar Blah</p><p><ac:structured-macro ac:schema-version=\"1\" ac:name=\"iframe\"><ac:parameter ac:name=\"URL\">https://www.example.com</ac:parameter><ac:parameter ac:name=\"Width\">100%</ac:parameter><ac:default-parameter>https://www.example.com</ac:default-parameter></ac:structured-macro></p>","representation":"storage"}}}' https://localhost:8080/confluence/rest/api/content  | python -mjson.tool;

Пока страница создается со встроенным макросом, ни один из параметры макроса были установлены согласно определениям в полезной нагрузке запроса. «URL» является обязательным параметром для макроса, однако мне неясно, должен ли элемент использоваться, или, альтернативно, элемент (и, следовательно, установить оба - безрезультатно).

Спасибо и привет, Эндрю

1 Ответ

0 голосов
/ 13 апреля 2020

Полезная нагрузка содержимого Confluence X HTML должна быть следующей:

<ac:structured-macro ac:name="iframe" ac:schema-version="1" ac:macro-id="f3b89c73-0096-409c-84fa-0158bf4e0f4f" xmlns:ac="http://www.atlassian.com/schema/confluence/4/ac/" xmlns:acxhtml="http://www.atlassian.com/schema/confluence/4/" xmlns:ri="http://www.atlassian.com/schema/confluence/4/ri/">
    <ac:parameter ac:name="src">
        <ri:url ri:value="https://example.com"/>
    </ac:parameter>
    <ac:parameter ac:name="width">100%</ac:parameter>
    <ac:parameter ac:name="height">750</ac:parameter>
    <ac:rich-text-body>
        <p>
            <br/>
        </p>
    </ac:rich-text-body>
</ac:structured-macro>

Самый простой способ определить правильную полезную нагрузку - вручную создать страницу с макросом и использовать REST API для получения X HTML фрагмент содержимого

curl -u <user>:<password> -H 'Accept: application/json' --url 'https://<host:<port>/confluence/rest/api/content/<page-id>?expand=body.storage,version' | python -mjson.tool
...