ApeekFlow REST API
Apeekflow предлагает богатый функционал REST API, который можно использовать в Apeekflow Apps или расширять Apeekflow с новой функциональностью.
Аутентификация
Сессионный файл cookie
В наших примерахAPEEKFLOW_AUTH_TOKEN
С помощью этого значения вы сможете аутентифицировать вызовы API.
Если пользователь не вошел в систему, вызовы API будут выполняться от имени "Анонимного пользователя", и для большинства вызовов API у этого пользователя нет прав.
Если вы вошли в систему, файл cookie текущего пользователя, вошедшего в систему, будет использоваться для выполнения вызовов API от имени текущего пользователя. Это означает, что права доступа к различным функциям автоматически применяются в зависимости от роли Пользователя. (Администратор, Участник, Посетитель)
Если вы хотите использовать API из-за пределов Apeekflow, вам необходимо сначала пройти аутентификацию и использовать файл cookie в качестве ключа APEEKFLOW_AUTH_TOKEN
при каждом вызове API.
// Зарегистрируйте пользователя в Apeekflow по электронной почте
curl --location 'https://app.apeekflow.dev/api/auth/form/login' \
--header 'Content-Type: application/json' \
--header 'Accept: */*' \
--data '{
"loginId": "<your_user>",
"password": "<your_password>",
"register": "false",
"source": "EMAIL",
"authId": "EMAIL"
}'
После успешного входа в систему вы получите следующий ответ:
// Ответ на метод входа в систему
{
"code": 1,
"message": "",
"data": true,
"success": true
}
В частности, вы получите обратно файл cookie для авторизации следующих вызовов API.
// Cookie in Response
APEEKFLOW_AUTH_TOKEN=<generatedCookieValue>; Path=/; Max-Age=2592000; Expires=Tue, 25 Jul 2023 13:51:31 GMT; HttpOnly; SameSite=Lax
Для всех следующих вызовов API вам необходимо установить файл cookie
// API Requests authorized
curl --location 'https://app.apeekflow.dev/api/users/currentUser' \
--header 'Accept: */*' \
--header 'Cookie: APEEKFLOW_AUTH_TOKEN=<generatedCookieValue>'
Ключ API
Вы также можете создавать и использовать API-ключ на основе JWT.
Как зарегистрированный пользователь, вы можете использовать API на основе Cookie для генерации API-ключа.
// используйте API Apeekflow для генерации API-ключа на основе JWT
curl --location 'https://app.apeekflow.dev/api/auth/api-key' \
--header 'cookie: APEEKFLOW_AUTH_TOKEN=<generatedCookieValue>;' \
--header 'Content-Type: application/json' \
--data '{
"name":"<your api key name>",
"description": "A wonderful API Key"
}'
В ответ вы получите ответ в формате JSON, содержащий ключ API
{
"code": 1,
"message": "",
"data": {
"id": "<the generated API Key Id",
"token": "ey...<the JSON Web Token>"
},
"success": true
}
Затем для всех дальнейших вызовов API вы можете использовать ключ API, который выдает себя за вошедшего в систему пользователя, создавшего ключ API.
Поскольку ключ API выдает себя за пользователя, который создал ключ API (на основе файла cookie), все права этого пользователя, выдающего себя за другого, также активируются с помощью ключа API.
Спецификация OpenAPI
app.apeekflow.dev
Чтобы использовать API облачной версии, доступ к нему должен осуществляться через отдельный API-сервис.
https://app.apeekflow.dev/
Мы автоматически публикуем спецификацию Open API и документацию Swagger.
Swagger Documentation:
https://app.apeekflow.dev/api/docs/webjars/swagger-ui/index.html#
OpenAPI Specification:
https://app.apeekflow.dev/api/docs/openapi.json
Использование API Apeekflow — внутри приложений Apeekflow
Можно использовать REST API Apeekflow внутри приложений в самом Apeekflow. Для этого создайте открытый источник данных, основанный на спецификации API.

Используйте определенный вами APEEKFLOW_AUTH_TOKEN
в качестве ключа аутентификации API. Он будет автоматически заменен адаптированным файлом cookie, если пользователь выполнит вход в систему.
Кроме того, вы можете использовать ключ API для взаимодействия с API Apeekflow от имени пользователя, выдающего себя за другого.
Документ Open API specification создается автоматически
https://app.apeekflow.dev/api/docs/openapi.json
Как только будет установлено подключение и найдена и обработана спецификация открытого API, контроллеры API станут доступны в источнике данных.

Для каждого контроллера вы можете просмотреть возможные операции.

Теперь вы можете выполнить вызов API на основе его настроек.
Last updated