Довідник REST API
Панель надає REST API для операцій з файлами.
Автентифікація
Всі ендпоінти вимагають JWT автентифікації через заголовок Authorization:
Authorization: Bearer <token>Отримайте токен через ендпоінти автентифікації.
Ендпоінти автентифікації
POST /auth/login
Автентифікація та отримання JWT токена.
Запит:
{
"username": "admin",
"password": "admin"
}Відповідь:
{
"success": true,
"token": "eyJhbG..."
}Помилки:
| Статус | Помилка |
|---|---|
| 401 | Невірні облікові дані |
POST /auth/logout
Інвалідація поточної сесії.
Відповідь:
{
"success": true
}GET /auth/status
Перевірка чи поточний токен валідний.
Відповідь:
{
"authenticated": true,
"user": "admin"
}Ендпоінти файлів
POST /api/files/upload
Завантаження файлу на сервер.
Запит:
- Content-Type:
multipart/form-data - Body:
file: Файл для завантаженняtargetDir: Шлях цільової директорії (опціонально, за замовчуванням/)
Відповідь:
{
"success": true,
"path": "/mods/my-mod.jar"
}Помилки:
| Статус | Помилка |
|---|---|
| 400 | Файл не надано |
| 413 | Файл занадто великий (макс 100MB) |
| 500 | Помилка сервера |
Приклад (curl):
curl -X POST \
-H "Authorization: Bearer <token>" \
-F "file=@my-mod.jar" \
-F "targetDir=/mods" \
http://localhost:3000/api/files/uploadGET /api/files/download
Завантаження файлу або директорії як tar архів.
Параметри запиту:
| Параметр | Тип | Обов'язково | Опис |
|---|---|---|---|
path | string | Так | Шлях до файлу або директорії |
Відповідь:
- Content-Type:
application/x-tar - Content-Disposition:
attachment; filename="<name>.tar"
Помилки:
| Статус | Помилка |
|---|---|
| 400 | Шлях обов'язковий |
| 404 | Файл не знайдено |
| 500 | Помилка сервера |
Приклад (curl):
curl -X GET \
-H "Authorization: Bearer <token>" \
"http://localhost:3000/api/files/download?path=/config.json" \
-o config.tarФормат відповіді помилки
Всі помилки слідують цьому формату:
{
"success": false,
"error": "Повідомлення про помилку тут"
}Обмеження частоти запитів
Наразі обмеження частоти не реалізовано. Розгляньте використання зворотного проксі (nginx, Traefik) з rate limiting для продакшн розгортань.
CORS
CORS увімкнено для origin фронтенду. Для кастомних інтеграцій налаштуйте ваш зворотний проксі відповідно.
