Militant

FAQ - Questions fréquentes

FAQ - Questions fréquentes

Installation

L'API est-elle déjà installée ?

Non, l'API doit être déployée séparément. Elle n'est pas incluse dans l'installation Militant par défaut.

Dois-je configurer quelque chose ?

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

Comment installer l'API ?

Voir Installation pour Docker ou CASAOS.md pour CasaOS.

Authentification

Comment obtenir un token ?

curl -X POST https://votre-instance.com/api/v1/auth.php \
  -H "Content-Type: application/json" \
  -d '{"username": "user", "password": "pass"}'

Combien de temps dure un token ?

30 jours. Après expiration, refaites un login.

Puis-je avoir plusieurs tokens ?

Oui, chaque login crée un nouveau token. Tous restent valides jusqu'à expiration.

Comment révoquer un token ?

curl -X POST https://votre-instance.com/api/v1/auth.php?action=revoke \
  -H "Content-Type: application/json" \
  -d '{"token": "votre_token"}'

Utilisation

Quelle est la limite de requêtes ?

100-200 requêtes par heure selon l'endpoint. Voir Rate Limiting

Comment uploader une image ?

curl -X POST https://votre-instance.com/api/v1/upload.php \
  -H "Authorization: Bearer TOKEN" \
  -F "media=@photo.jpg" \
  -F "type=posts"

Comment paginer les résultats ?

Ajoutez ?page=2&limit=20 à vos requêtes GET.

L'API supporte-t-elle CORS ?

Oui, CORS est activé par défaut pour tous les domaines.

Erreurs

"Invalid or expired token"

Votre token a expiré. Refaites un login pour en obtenir un nouveau.

"Rate limit exceeded"

Vous avez dépassé la limite de requêtes. Attendez 1 heure.

"Database connection failed"

Vérifiez la configuration dans /api/.env ou les credentials MySQL.

"Method not allowed"

Vous utilisez la mauvaise méthode HTTP (GET au lieu de POST, etc.)

Configuration

Où sont stockés les tokens ?

Dans la table api_tokens de la base de données Militant.

Puis-je changer la durée des tokens ?

Oui, dans api/config.php : 'token_lifetime' => 2592000 (en secondes)

Puis-je désactiver le rate limiting ?

Oui, dans api/config.php : 'rate_limit_enabled' => false

Comment connecter l'API à une autre instance ?

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

Sécurité

L'API est-elle sécurisée ?

Oui : tokens SHA-256, rate limiting, validation des données, protection CSRF.

Dois-je utiliser HTTPS ?

Oui, fortement recommandé pour protéger les tokens en transit.

Comment créer un utilisateur API dédié ?

CREATE USER 'api_user'@'%' IDENTIFIED BY 'password';
GRANT SELECT, INSERT, UPDATE, DELETE ON militant.* TO 'api_user'@'%';

Développement

Existe-t-il des SDKs ?

Oui : Python et JavaScript

Puis-je tester l'API localement ?

Oui, utilisez docker-compose.yml dans le dossier /api/

Comment activer le mode debug ?

Dans /api/.env : API_DEBUG=true

Où voir les logs ?

docker logs militant-api -f

Autres

L'API est-elle compatible avec OAuth2 ?

Pas encore, mais c'est prévu. Actuellement : Bearer tokens simples.

Puis-je utiliser l'API commercialement ?

Oui, sous licence AGPL-3.0. Voir LICENSE

Comment contribuer ?

Voir Contribuer

Où signaler un bug ?

Sur GitLab : https://gitlab.com/militant1/millitant/issues


Retour au Wiki