Règles API
Statut
Document de règles projet — version initiale.
Objectif
Garantir une API DMV cohérente, versionnée, sécurisée et exploitable par toutes les applications connectées.
Règles strictes
- Toutes les routes métier doivent être versionnées sous
/api/v1. - Les erreurs API doivent rester en JSON.
- Les mutations sensibles doivent vérifier authentification, autorisation et périmètre.
- Le header
X-App-Sourcedoit être utilisé quand la route dépend de l'application appelante. - Ne pas exposer de champs internes, tokens ou secrets.
- Ne pas créer d'endpoint sans responsabilité claire.
- Ne pas casser un contrat API sans stratégie de migration.
Sources applicatives
Sources visibles et admises :
dmv;backoffice;playloop;assosuite;mairie.
Structure de réponse
Recommandation :
- envelopper les ressources principales avec un nom explicite ;
- exposer des listes paginées quand le volume peut croître ;
- inclure des statuts compréhensibles ;
- garder les erreurs actionnables.
Autorisation
Chaque mutation doit répondre à trois questions :
- qui appelle ?
- depuis quelle application ?
- sur quel périmètre agit-il ?
Exemples de périmètre :
- acteur ;
- commune ;
- association ;
- device ;
- admin global ;
- utilisateur propriétaire.
Versioning
v1est la version visible.- Les changements compatibles restent dans
v1. - Les changements destructifs doivent être préparés.
- Les routes obsolètes doivent être documentées avant retrait.
Anti-patterns
- Route admin accessible sans middleware strict.
- Réponse différente selon exception non contrôlée.
- Payload trop large.
- Endpoint
miscoudoStuff. - Logique métier dupliquée par application.
- Accès direct frontend à la donnée pour contourner l'API.
Points à clarifier
- Documentation OpenAPI ou équivalent.
- Convention exacte d'erreur.
- Pagination standard.
- Dépréciation d'API.
- Contrats inter-applications.