Назначение модуля
Модуль предназначен для просмотра списка методов API платформы Robin. С их помощью можно интегрировать некоторый функции платформы в свои приложения.
Работа с модулем доступна только пользователям с ролью "Администратор Оркестратора". Поэтому если у вас нет такой роли, то модуль "API" не отобразится на панели меню.
Посмотреть доступные методы можно на вкладках раздела:
Авторизация и получение токена
Для работы с API платформы необходимо получить токен доступа (access_token
). Токен используется для заполнения заголовка авторизации в запросах к API.
Запрос для получения токена
Метод: POST
URL запроса: https://<адрес вашего Keycloak>:8443/realms/robin/protocol/openid-connect/token
Параметры тела POST-запроса:
Параметр | Значение | Описание |
---|---|---|
client_id | ExternalClient | Фиксированное значение |
client_secret | Секретный ключ клиента. Пример: lN10xJuiK9fnIlUIRxWEaJwSEKvaeckL | Значение можно получить из панели администратора в Keycloak (один из компонентов платформы Robin). Получить секретный ключ можно в Keycloak: в разделе "Clients" найти сервис "ExternalClient" и открыть его карточку → в карточке на вкладке "Credentials" найти поле "Client secret" и скопировать секретный ключ. Если у вас нет доступа в Keycloak, получить ключ можно от администратора платформы Robin в вашей организации. |
grant_type | urn:ietf:params:oauth:grant-type:token-exchange | Фиксированное значение |
tenant_id | Идентификатор тенанта. Пример: f9fdg366-31e5-11ee-be30-0236va230006 | Идентификатор тенанта, в рамках которого будут выполняться запросы к API. Например, при запросе списка машин, система вернет только те машины, которые добавлены в указанный тенант. Получить идентификатор пользователя можно из базы "robin_2". Пример SQL-запроса SELECT id FROM robin_user_service.tenants WHERE name = 'название тенанта'; Если у вас нет доступа к базе, получить идентификатор можно от администратора платформы Robin в вашей организации. |
user_id | Идентификатор пользователя. Пример: 5g8c3bc4-2ff1-30a1-36ca-7sc274fa86ad | Идентификатор пользователя платформы Robin, под учётной записью которого будут выполняться запросы к API. При выполнении запросов будут учитываться права пользователя в том тенанте, который вы указали в запросе. Например, при запросе списка роботов, система вернет только тех роботов, который доступны указанному пользователю в указанном тенанте. Получить идентификатор пользователя можно из базы "robin_2". Пример SQL-запроса SELECT id Если у вас нет доступа к базе, получить идентификатор можно от администратора платформы Robin в вашей организации. |
POST https://prod.rpa.ru:8443/realms/robin/protocol/openid-connect/token Content-Type: application/x-www-form-urlencoded client_id=ExternalClient&client_secret=lN10xJuiK9fnIlUIRxWEaJwSEKvaeckL&grant_type=urn:ietf:params:oauth:grant-type:token-exchange&tenant_id=f9fdg366-31e5-11ee-be30-0236va230006&user_id=5g8c3bc4-2ff1-30a1-36ca-7sc274fa86ad
Результат запроса
При успешном выполнении запроса будет возвращен ответ с кодом 200
В теле ответа будет указан access_token
, который необходим при выполнении запросов к API платформы.
{ "access_token": "ваш_токен_доступа", "expires_in": 3600, "token_type": "Bearer" }
Примечания
- Токен необходимо указывать в запросах в заголовке Authorization:
Authorization: Bearer <ваш_токен_доступа>
- Токен имеет ограниченное время жизни. Срок его жизни можно узнать или изменить через интерфейс Keycloak.
- Для безопасности никогда не храните секретный ключ (
client_secret
) в открытом виде.