Skip to content

Referencia de API REST ​

El panel expone una API REST para operaciones de archivos.

Autenticación ​

Todos los endpoints requieren autenticación JWT via el header Authorization:

Authorization: Bearer <token>

Obtén un token iniciando sesión a través de los endpoints de auth.

Endpoints de Autenticación ​

POST /auth/login ​

Autenticar y recibir un token JWT.

Request:

json
{
  "username": "admin",
  "password": "admin"
}

Response:

json
{
  "success": true,
  "token": "eyJhbG..."
}

Errores:

StatusError
401Credenciales inválidas

POST /auth/logout ​

Invalidar la sesión actual.

Response:

json
{
  "success": true
}

GET /auth/status ​

Verificar si el token actual es válido.

Response:

json
{
  "authenticated": true,
  "user": "admin"
}

Endpoints de Archivos ​

POST /api/files/upload ​

Subir un archivo al servidor.

Request:

  • Content-Type: multipart/form-data
  • Body:
    • file: El archivo a subir
    • targetDir: Ruta del directorio destino (opcional, por defecto /)

Response:

json
{
  "success": true,
  "path": "/mods/my-mod.jar"
}

Errores:

StatusError
400No se proporcionó archivo
413Archivo muy grande (máx 100MB)
500Error del servidor

Ejemplo (curl):

bash
curl -X POST \
  -H "Authorization: Bearer <token>" \
  -F "file=@mi-mod.jar" \
  -F "targetDir=/mods" \
  http://localhost:3000/api/files/upload

GET /api/files/download ​

Descargar un archivo o directorio como archivo tar.

Parámetros de Query:

ParámetroTipoRequeridoDescripción
pathstringSíRuta al archivo o directorio

Response:

  • Content-Type: application/x-tar
  • Content-Disposition: attachment; filename="<nombre>.tar"

Errores:

StatusError
400Se requiere ruta
404Archivo no encontrado
500Error del servidor

Ejemplo (curl):

bash
curl -X GET \
  -H "Authorization: Bearer <token>" \
  "http://localhost:3000/api/files/download?path=/config.json" \
  -o config.tar

Formato de Respuesta de Error ​

Todos los errores siguen este formato:

json
{
  "success": false,
  "error": "Mensaje de error aquí"
}

Rate Limiting ​

Actualmente no hay rate limiting implementado. Considera usar un proxy reverso (nginx, Traefik) con rate limiting para despliegues en producción.

CORS ​

CORS está habilitado para el origen del frontend. Para integraciones personalizadas, configura tu proxy reverso apropiadamente.

Not affiliated with Hypixel Studios or Hytale.