API Skitflow
Как взаимодействовать с API Skitflow для администраторов и пользователей
В некоторых случаях вам может потребоваться прямое взаимодействие с API Skitflow. Вот как это могут сделать администраторы и пользователи.
Для администраторов
- Откройте Swagger UI, перейдя по адресу
your-vps-ip:3000/swagger. - Используйте интерфейс Swagger для взаимодействия с API.
- По умолчанию доступ к Swagger UI ограничен, и только аутентифицированные администраторы имеют доступ к API.
Для пользователей
- По умолчанию пользователи не имеют прямого доступа к API.
- Администраторы могут предоставить пользователям доступ для:
- Генерации токенов доступа
- Доступа к Swagger UI
- Если вам нужен доступ, свяжитесь с вашим администратором.
Примечание: API предоставляет расширенные возможности. Убедитесь, что вы понимаете выполняемые операции, чтобы избежать непредвиденных изменений в системе.
Использование
По умолчанию базовый URL OpenApi — http://localhost:3000/api, вам необходимо заменить его на IP-адрес вашего экземпляра Skitflow или доменное имя.
Аутентификация
API использует JWT-токены для аутентификации. Вы можете сгенерировать токен, перейдя на страницу /settings/profile в раздел API/CLI и сгенерировав токен.
Рассмотрим пример аутентифицированного запроса:
curl -X 'GET' \
'https://skitflow.cloud/api/project.all' \
-H 'accept: application/json' \
-H 'x-api-key: YOUR-GENERATED-API-KEY'в ответ вы получите что-то вроде этого:
[
{
"projectId": "klZKsyw5g-QT_jrWJ5T-w",
"name": "Random",
"description": "",
"createdAt": "2024-06-19T15:05:58.785Z",
"adminId": "_WrKZbs7iJAA3p4N2Yfyu",
"applications": [],
"mariadb": [],
"mongo": [],
"mysql": [
{
"mysqlId": "N3cudwO46TiDXzBm4SaQ1",
"name": "mysql",
"appName": "random-mysql-924715",
"description": "",
"databaseName": "mysql",
"databaseUser": "mysql",
"databasePassword": "h13BzO6y3KYSHaQg",
"databaseRootPassword": "mM1b7JeoPA7jArxj",
"dockerImage": "mysql:8",
"command": null,
"env": null,
"memoryReservation": null,
"memoryLimit": null,
"cpuReservation": null,
"cpuLimit": null,
"externalPort": null,
"applicationStatus": "done",
"createdAt": "2024-06-24T01:55:40.378Z",
"projectId": "klZKsyw5g-QT_jrWJ5T-w"
}
],
"postgres": [],
"redis": [
{
"redisId": "TtFK5S4QFaIjaNGOb8Ku-",
"name": "redis",
"appName": "random-redis-7eec62",
"description": "",
"databasePassword": "Yvb8gqClfomjcue8",
"dockerImage": "redis:7",
"command": null,
"env": null,
"memoryReservation": null,
"memoryLimit": null,
"cpuReservation": null,
"cpuLimit": null,
"externalPort": 6379,
"createdAt": "2024-06-26T06:43:20.570Z",
"applicationStatus": "done",
"projectId": "klZKsyw5g-QT_jrWJ5T-w"
}
],
"compose": []
},
]