No, la API debe desplegarse por separado. No está incluida en la instalación predeterminada de Militant.
Sí, crea un archivo /api/.env con las credenciales de tu instancia Militant:
API_DB_HOST=tu-militant-db
API_DB_NAME=militant
API_DB_USER=militant
API_DB_PASS=tu_contraseña
Ver Instalación para guías de Docker o CasaOS.
curl -X POST https://tu-instancia.com/api/v1/auth.php \
-H "Content-Type: application/json" \
-d '{"username": "usuario", "password": "contraseña"}'
30 días. Después de expirar, inicia sesión nuevamente para obtener uno nuevo.
Sí, cada inicio de sesión crea un nuevo token. Todos permanecen válidos hasta expirar.
curl -X POST https://tu-instancia.com/api/v1/auth.php?action=revoke \
-H "Content-Type: application/json" \
-d '{"token": "tu_token"}'
100-200 solicitudes por hora según el endpoint.
curl -X POST https://tu-instancia.com/api/v1/upload.php \
-H "Authorization: Bearer TOKEN" \
-F "media=@foto.jpg" \
-F "type=posts"
Añade ?page=2&limit=20 a tus solicitudes GET.
Sí, CORS está habilitado por defecto para todos los dominios.
Tu token ha expirado. Inicia sesión nuevamente para obtener uno nuevo.
Has excedido el límite de solicitudes. Espera 1 hora.
Verifica la configuración en /api/.env o las credenciales MySQL.
Estás usando el método HTTP incorrecto (GET en lugar de POST, etc.)
En la tabla api_tokens de la base de datos Militant.
Sí, en api/config.php: 'token_lifetime' => 2592000 (en segundos)
Sí, en api/config.php: 'rate_limit_enabled' => false
Sí: tokens SHA-256, rate limiting, validación de datos, protección CSRF.
Sí, muy recomendado para proteger los tokens en tránsito.
CREATE USER 'api_user'@'%' IDENTIFIED BY 'password';
GRANT SELECT, INSERT, UPDATE, DELETE ON militant.* TO 'api_user'@'%';
Sí: SDKs de Python y JavaScript están disponibles.
Sí, usa docker-compose.yml en la carpeta /api/.
En /api/.env: API_DEBUG=true
docker logs militant-api -f
Aún no, pero está planeado. Actualmente: tokens Bearer simples.
Sí, bajo licencia AGPL-3.0.
Ver el repositorio GitLab: https://gitlab.com/militant1/millitant
En GitLab: https://gitlab.com/militant1/millitant/issues