ApeekFlow
  • Платформа Apeekflow
  • С чего начать
    • Начало работы
    • Создаем первое приложение
    • Шаблоны проектов
  • Настройки платформы
    • Профиль
    • Библиотека запросов
    • Источники данных
      • Базы данных
        • PostgreSQL
        • MongoDB
        • MySQL
        • Redis
        • Microsoft SQL Server
        • MariaDB
      • AI сервисы
      • App Development
        • REST API
        • ApeekFlow REST API
      • Messaging
      • Assets
        • Хранилище файлов S3
      • Websocket
      • Сервисы
        • Google Sheets
    • Настройки
      • Рабочие пространства
      • Пользователи и группы
      • Расширенные настройки
        • Сторонние библиотеки
        • Импорт UMD библиотек
    • Корзина
  • Конструктор приложений
    • Обзор
      • Приложения
      • Модули
      • Приложение или модуль
      • Навигационная панель
      • Массовое редактирование
      • Управление слоями
      • Использвание Markdown
      • Горячие клавиши
    • Каталог компонентов
      • Общие настройки компонентов
      • Тост нотификации
      • Components
        • Table
        • Cascader
        • Link
        • Float Button
        • Form
        • JSON Schema Form
        • JSON Editor
        • JSON Explorer
        • Rich Text Editor
        • Input
        • Password
        • Number Input
        • Text Area
        • Auto Complete
        • Switch
        • Checkbox
        • Radio
        • Slider
        • Range Slider
        • Form Button
        • Icon Button
        • Dropdown
        • Toggle Button
        • Rating
        • Select
        • Multiselect
        • Tree
        • Tree Select
        • Text Display
      • Calendar
        • Calendar
        • Timer
        • Date
        • Date Range
        • Time
        • Time Range
      • Layout
        • Responsive Layout
        • Page Layout
        • Column Layout
        • Float Text Container
        • Content Card
        • Tabbed Container
        • Collapsible Container
        • Container
        • List View
        • Grid
        • Modal
        • Drawer
        • Divider
        • Navigation
        • Segmented Control
        • Tour
      • Multimedia
        • File Upload
        • File Viewer
        • Image
        • Image Carousel
        • Audio
        • Video
        • Shapes
        • Lottie Animation
        • Icons
        • Image Editor
        • Color Picker
        • QR Code
        • Scanner
      • Graphs
        • Basic Chart
        • Candlestick Chart
        • Funnel Chart
        • Gauge Chart
        • Graph Chart
        • Heatmap Chart
        • Radar Chart
        • Sankey Chart
        • Sunburst Chart
        • Theme River Chart
        • Tree Chart
        • Treemap Chart
        • Geo Map Charts
        • Mermaid Chart
        • Timeline
        • Progress
        • Progress Circle
      • Collaboration
        • Avatar
        • Avatar Group
        • Comment
      • Integration
        • Page
    • Кастомизация и код
      • Настройка стилей компонентов
      • Temporary State
      • Transformers
      • Data responder
      • Event handlers
      • Выполнение запросов
        • Привязка данных запроса к компонентам
      • Использование Javascript
        • JavaScript запросы
        • Встроенные функции JS
        • Работа с датой и временем в Day.js
    • Антипатерны
  • Релиз менеджмент
    • Версионирование запросов
    • Версионирование приложений
    • Доступ до приложений
    • Публикация приложений
  • Безопасность
    • Основная информация
    • IP адреса облака
    • Права доступа до объектов
Powered by GitBook
On this page
  • Аутентификация
  • Сессионный файл cookie
  • Ключ API
  • Спецификация OpenAPI
  • app.apeekflow.dev
  • Использование API Apeekflow — внутри приложений Apeekflow
  1. Настройки платформы
  2. Источники данных
  3. App Development

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 на основе его настроек.

PreviousREST APINextMessaging

Last updated 4 months ago