Non, l'API doit être déployée séparément. Elle n'est pas incluse dans l'installation Militant par défaut.
Oui, vous devez créer un fichier /api/.env avec les credentials de votre instance Militant :
API_DB_HOST=votre-militant-db
API_DB_NAME=militant
API_DB_USER=militant
API_DB_PASS=votre_mot_de_passe
Voir Installation pour Docker ou CASAOS.md pour CasaOS.
curl -X POST https://votre-instance.com/api/v1/auth.php \
-H "Content-Type: application/json" \
-d '{"username": "user", "password": "pass"}'
30 jours. Après expiration, refaites un login.
Oui, chaque login crée un nouveau token. Tous restent valides jusqu'à expiration.
curl -X POST https://votre-instance.com/api/v1/auth.php?action=revoke \
-H "Content-Type: application/json" \
-d '{"token": "votre_token"}'
100-200 requêtes par heure selon l'endpoint. Voir Rate Limiting
curl -X POST https://votre-instance.com/api/v1/upload.php \
-H "Authorization: Bearer TOKEN" \
-F "media=@photo.jpg" \
-F "type=posts"
Ajoutez ?page=2&limit=20 à vos requêtes GET.
Oui, CORS est activé par défaut pour tous les domaines.
Votre token a expiré. Refaites un login pour en obtenir un nouveau.
Vous avez dépassé la limite de requêtes. Attendez 1 heure.
Vérifiez la configuration dans /api/.env ou les credentials MySQL.
Vous utilisez la mauvaise méthode HTTP (GET au lieu de POST, etc.)
Dans la table api_tokens de la base de données Militant.
Oui, dans api/config.php : 'token_lifetime' => 2592000 (en secondes)
Oui, dans api/config.php : 'rate_limit_enabled' => false
Créez /api/.env avec les credentials de l'autre instance :
API_DB_HOST=autre-instance.com
API_DB_NAME=militant
API_DB_USER=api_user
API_DB_PASS=password
Oui : tokens SHA-256, rate limiting, validation des données, protection CSRF.
Oui, fortement recommandé pour protéger les tokens en transit.
CREATE USER 'api_user'@'%' IDENTIFIED BY 'password';
GRANT SELECT, INSERT, UPDATE, DELETE ON militant.* TO 'api_user'@'%';
Oui : Python et JavaScript
Oui, utilisez docker-compose.yml dans le dossier /api/
Dans /api/.env : API_DEBUG=true
docker logs militant-api -f
Pas encore, mais c'est prévu. Actuellement : Bearer tokens simples.
Oui, sous licence AGPL-3.0. Voir LICENSE
Voir Contribuer
Sur GitLab : https://gitlab.com/militant1/millitant/issues