На свой страх и риск вы можете использовать REST API. Поскольку интеграция продуктов в Архива на уровне API часто сопряжена со значительной сложностью, временем и ресурсами, наше соглашение о поддержке обычно не охватывает устранение неполадок REST API и помощь в интеграции. |
Сервер Архива предлагает API веб-служб. API обеспечивает программный доступ ко многим функциям продукта; в том числе: проведение поиска, извлечение и импорт данных, обход структур папок, отправка данных, управление тегами и удержаниями. В приведенном ниже руководстве приведены практические примеры того, как запрашивать и извлекать данные с сервера. Кроме того, в нем описывается, как создать интерфейс клиента на выбранном языке программирования и получить доступ к полной документации REST API.
Войдите в веб-консоль Архива как администратор. В разделе Настройка->Авторизация установите флажок Разрешить доступ к API и нажмите кнопку Генерировать, чтобы сгенерировать ключ API.
Обратите внимание на команду curl для выполнения базового поиска через REST API.
Как только сервер будет установлен, посетите http://localhost:8090/api-docs для получения дальнейших инструкций о том, как использовать API. В качестве альтернативы, посетите https://demo.archiva.ru/api-docs чтобы ознакомиться с документацией.
При трех последовательных попытках неудачной авторизации сервер будет отклонять все попытки проверки подлинности для одного и того же пользователя в течение длительного периода времени. Кроме того, при каждой неправильной попытке сервер не будет отвечать двадцать секунд.
Для выполнения базового поиска:
curl --header "Authorization: Uk9PVDphZG1pbjp0ZXN0" --header "Accept: application/json" http://localhost:8090/api/v1/blobs?query=subject:test -k |
Результат будет JSON-документ, содержащий результаты поиска.
Чтобы проиллюстрировать поиск с помощью разбиения на страницы, сохраните следующее как файл paginate с разрешениями execute
curl --header "Authorization: Uk9PVDphZG1pbjp0ZXN0" --header "Accept: application/json" http://localhost:8090/api/v1/blobs?query=$1'&'page=$2'&'pageSize=$3 -k |
Для извлечения файлы с ID 9ba167074a9474f32869b0ada582b944 в тому 187c1693-2855-4586-aa74-c2d8f7e648f4
curl --header "Authorization: Uk9PVDphZG1pbjp0ZXN0 --header "Accept: application/octet-stream" http://localhost:8090/api/v1/blobs/187c1693-2855-4586-aa74-c2d8f7e648f4/9ba167074a9474f32869b0ada582b944 -k |
Результатом будет сообщение в формате RFC822.
В Linux версии Архива, есть несколько примеров сценариев внутри каталога /opt/mailarchiva/server/ws. Эти сценарии можно легко адаптировать в Windows, так как они просто обертывают команду curl, как показано выше.
Перед запуском скриптов отредактируйте сценарий setvars с помощью текстового редактора с правильным именем и паролем учётной записи.
APP=ROOT USERNAME=admin PASSWORD=test AUTHORIZATION=`echo -n $APP':'$USERNAME':'$PASSWORD | base64` URL=http://localhost:8090/api |
Для удобства, в каждый дистрибутив мы включили автоматически обновляемый swagger.json файл с помощью которого возможно создать интерфейс клиента для доступа к REST API на любом языке. Для этого откройте Редактор Swagger и загрузите swagger.json. Например, чтобы создать интерфейс клиента Python, загрузите файл JSON в Редактор Swagger, затем щелкните создать клиент и выберите Python в качестве языка. Файл swagger.json находится в каждом дистрибутиве.
Чтобы избежать ошибки , перед отправкой swagger.json в Редакторе Swagger откройте файл с помощью текстового редактора и укажите имя хоста API в записи хоста.
|