Есть ли способ использовать REST API Confluence для получения содержимого статьи, если все, что у меня есть, это крошечный URL-адрес? Я знаю, как это сделать, если у меня есть идентификатор страницы или пробел/заголовок, но пока я не могу найти способ перевести эти крошечные URL-адреса во что-то полезное.
Получить содержимое статьи слияния через REST API с помощью только крошечного URL-адреса
Ответы (2)
Как сказал @mtheriault, необходимо обходное решение, вы не можете напрямую вставить крошечный URL-адрес в REST API. Однако есть более простой способ, чем чтение исходного кода html:
Вам нужен один обычный вызов REST, но вместо того, чтобы запрашивать сам тиниурл, ПОЛУЧИТЕ следующее: [confluenceURL]/pages/tinyurl.action?urlIdentifier=[tinyURLFragment]
. Если крошечный фрагмент URL-адреса правильный, вы получите 302, где заголовок Location
является полной ссылкой на эту страницу. Затем вы можете разобрать пробел, заголовок страницы и все, что вам нужно от него.
Вам понадобится код, но это возможно.
Крошечный 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.