Pages annexes, exemples et details techniques dans une mise en page plus lisible.
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 l'installation generale ou wiki.php?page=CASAOS 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 requetes par heure selon l'endpoint. Voir la documentation principale pour la configuration generale.
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 : voir Guide des SDKs
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 le projet GitLab : militant-api
Sur GitLab : https://gitlab.com/militant1/millitant/issues