Получить содержимое статьи слияния через REST API с помощью только крошечного URL-адреса

Есть ли способ использовать REST API Confluence для получения содержимого статьи, если все, что у меня есть, это крошечный URL-адрес? Я знаю, как это сделать, если у меня есть идентификатор страницы или пробел/заголовок, но пока я не могу найти способ перевести эти крошечные URL-адреса во что-то полезное.


person gsharp    schedule 14.07.2016    source источник


Ответы (2)


Как сказал @mtheriault, необходимо обходное решение, вы не можете напрямую вставить крошечный URL-адрес в REST API. Однако есть более простой способ, чем чтение исходного кода html:

Вам нужен один обычный вызов REST, но вместо того, чтобы запрашивать сам тиниурл, ПОЛУЧИТЕ следующее: [confluenceURL]/pages/tinyurl.action?urlIdentifier=[tinyURLFragment]. Если крошечный фрагмент URL-адреса правильный, вы получите 302, где заголовок Location является полной ссылкой на эту страницу. Затем вы можете разобрать пробел, заголовок страницы и все, что вам нужно от него.

person rorschach    schedule 03.09.2016

Вам понадобится код, но это возможно.

Крошечный URL — это всего лишь перенаправление (302) на страницу в Confluence.

Процесс должен быть примерно таким:

  • Сделайте запрос GET на Tiny URL. Следуйте перенаправлению (302).
  • Вы получите содержимое страницы. Если вы проверите страницу Confluence, вы увидите, что некоторые метаданные доступны:

    <meta name="ajs-page-id" content="6494177"> <meta name="ajs-latest-page-id" content="6494177"> <meta name="ajs-content-type" content="page"> <meta name="ajs-page-title" content="Page Title"> <meta name="ajs-latest-published-page-title" content="Page Title"> <meta name="ajs-parent-page-title" content="My Parent Page Title"> <meta name="ajs-parent-page-id" content="6496957"> <meta name="ajs-space-key" content="CT"> <meta name="ajs-space-name" content="My Space">

  • Проанализируйте и получите необходимые значения для получения содержимого страницы: https://docs.atlassian.com/confluence/REST/latest/#content-getContent.

person mtheriault    schedule 25.08.2016
comment
Я ценю ответ и обходной путь, но я надеялся найти способ сделать это через REST API. - person gsharp; 29.08.2016