HTTP API и OpenAPI / Swagger
Раздел:Интеграции(внутри книги «Установка и настройка»). Связанные разделы:Сервер SMTP,SMTP-форвардинг из CommuniGate Pro.
Назначение
Клавдий предоставляет HTTP API для программного управления архивом и интеграции со сторонними системами: CRM, службами поддержки, ИИ-агентами, скрипедствами автоматизации, BI-и ансалитрументамики.
Полная сСпецификация API —публикуется в формате OpenAPI 3.0.3, с3 и доступнта черактивным интерфейсомз Swagger UI.
Где найотикрыть спецификацию
Интерактивный интерфейс Swagger UI встроен в веб-паинтельрфейс и доступен по адресу:
https://<адрес-узла>:<порт-WUI>/swagger/index.html
Ссылка «[Документация к API»API] также едостьупна на главной странице веб-пинтерфейсанели.
СпецификФацияйл openapi.yaml —является источником истины подля маршрутамов, параметрам,ов ти схелам запросов и ответамов. Еёго можно искачпользовать с openapi-generator или поswagger-codegen дключить кя генераторамции клиентсковго (openapi-generator,
swagger-codegen) для получения SDK на нужном языке.SDK.
Дваоступные API
| API | Назначение | Аутентификация | |
|---|---|---|---|
| WUI API | /api/..., порт 8001 |
access_token |
|
/put, /get, /check, /get-bulk, порт 8444 |
JWT auth_token с claim (!)) purpose |
Для внешних интеграций
со сторонними системамииспользуйтетсяWUIAPI.API.Storage(!)Storage API предназначен дляобмвнутренаних соединений между узлами Клавдияи не применяется во внешних интеграциях.
Аутентификация WUI API
- Выполните
POST /api/loginси передайтеusernameиpassword. - Сервер в
озверащаенёт JWT в HttpOnly-cookieaccess_token. ДВ бральнузейширезапросы кcookie переда/api/...юётcookieся автоматически.(бДраузгой клиент может пер)едатьилиего вручную заголовкомCookie: access_token=<jwt>(не-браузерные клиенты).
Роли и пПрава запроса определяются учётной записью:
Аадминистратор—имеет полный доступко всем эндпоинтам.;- обычный
Ппользователь—работает самообслуживание(своими данные,мисвои письма).ми; Ддополнитетальныепогравничения занастраивдаются RBAC (!) черезRBAC (см.Пользователи, права и группы):секции,(напримерSECTION_ARCHIVE_MESSAGES,иSECTION_SETTINGS,…)и действия(can_list/,can_view/,can_edit_details/,can_create/,can_delete_entity/,can_action_*).
Что
См. {{ССЫЛКА:install.rbac|Правила доступа и RBAC}}.
Работа с длительной сессией
POST /api/login принимает username и password в JSON. Клиент должен сохранять cookie из ответа и учитывать её обновление сервером при продлении сессии. Маршрут обновления сессии и его параметры проверьте в Swagger установленной версии.
При ответе 401 выполните повторный вход; при 403 проверьте права. Для длительной интеграции не используйте постоянное значение токена, скопированное из браузера. Пример регулярного опроса с получением новой сессии: {{ССЫЛКА:install.integration-zabbix|Мониторинг через APIZabbix}}.
Основные группы эндпоинмаршрутов
В спецификации) OpenAPI маршруты сгруппированы по тегам. Имена тегов приводятся в точном виде:
-
Auth— вход/и выход.; -
Dashboard— состояние, метрики,и самопроверка.; -
Archive— поиск, просмотр писем и вложений, API-импорт(PST/EML/MSG).MSG; -
Sources— создание и проверка источникиовписем (EWS/IMAP/SMTP): создание, проверка,SMTP, запуск сбора.; -
Tasks— очередь задач: список, отмена,и возобновление.; -
Schedules— расписаниея задач.; -
Settings— общие настройки, поиск, оповещения,SMTP/SMTP- и IMAP-серверы.; -
Cluster— узлы и группы кластера.; -
Users,/Groups,Groups /Rights—учёпользоватныезаписли, группы,и правила доступа.; -
Storages,/StorageGroups,StorageGroups /StorageRules— хранилища, группы,и правила хранения.; -
LDAP—каталогLDAP/AD.AD; -
TLS,/License,License /Solr— сертификаты, лицензия,инстансэкземпляры поиска.
Большинство
Ммаршрутизацияов WUI—API испрользуют схеимущественно generic:GET/POST /api/{domain}/{action}.СпОтдециально определеные маршруты:/api/login,/api/logout,/api/archive/messages/{id}/attachments/{aid}/download,и/api/archive/ingest.
Пример: войти и выполучнить сессию и найти поисьмок
# 1. Вход —; cookie сохраняется в файл
curl -k -c cookies.txt -X POST https://127.0.0.1:8001/api/login \
-H 'Content-Type: application/json' \
-d '{"username":"admin","password":"<пароль>"}'
# 2. Поиск по архиву (с сохранённой cookie передаётся из файла)
curl -k -b cookies.txt 'https://127.0.0.1:8001/api/archive/search?q=договор&page=1'
СценаПриимеры интеграциий
- CRM
CRM— пмописьму из CRMжет находить связанную перепискув архиве (поискпо адресу/или теме),и подтягивлучать вложения. ИИ-агенты—может читатьсодержимоеписеьма и вложенийя(через поиск или API-импорт илиспользовать иск),х для классификацировать,и и отвечатьов на запросыпользователей по данным архива.Скрипедстыва автоматизации—могут запускать сбориз источников, отслеживать задачи,и передавыгружать метрики в системыу мониторинга.- BI-система
BIможет/ анаполитика— агрегировучать объёмы по ящикам(через/api/dashboard/mailbox-volumes), времена обработки,и состояние кластера.
Для программ
,ной интегработающцих от именипсользодавателей, заводите отдельныеую учётныеую записиь с минимально нужнеобходимыми правами(RBAC), а нвместо используйтеования администратора.
Проверкьте файл спецификацииOpenAPI
# Синтаксис YAML:
python3 -c "import yaml; yaml.safe_load(open('openapi.yaml'))"
Связанные м. атериакжелы
{{ССЫЛКА:install.rbac|Пользователи, правила доступа игруппы— учётные записи для интеграций, RBAC.RBAC}}- {{ССЫЛКА:install.source-choose|Как
Ивыбрать стпособ сбора почники писем— API-импортPST/EML/MSG.ы}} {{ССЫЛКА:install.communigate|SMTP-форвардинг из CommuniGatePro— push-вариант интеграции с почтовым сервером.Pro}}{{ССЫЛКА:reference.errors-index|Коды ошибок— расшифровка кодов в ответах и журнале.}}
Навигация по книге
- Следующая статья: {{ССЫЛКА:reference.network-ports|Порты и сетевые соединения
}}