Architecture, normes et conventions - ETML-ES-LABEFE-MANUEL-THEO/BACKEND GitHub Wiki
La structure du projet se base sur l'architecture Spring décrite dans ce guide.
Ainsi, pour une ressource on retrouve (dans la plupart des cas):
- Une entité représentant les données en DB.
- Un contrôleur REST contenant les différentes actions possibles.
- Une repository pour la gestion de la persistance en DB.
- Un service pour la logique métier.
- Une ou plusieurs DTO annotée(s) pour la validation et le transfert des données frontend <-> backend
- Les différentes gestions d'erreurs spécifiques aux processus métiers
Afin de garantir un dépôt de code propre, lisible et structuré, on utilise la méthodologie de workflow GitFlow et la convention de nommage des commits selon Conventional Commits.
Ainsi, les principales branches crées et utilisées seront :
- main : Branche de base, contient un code en production ou prêt pour la production.
- release/<version> : Branche de préparation de release, contient les prérequis pour une mise en production du code. (mergée dans main et develop une fois terminée)
- develop : Branche commune aux développeurs, contient la dernière version fonctionnelle du code.
- feature/<name> : Branche d'ajout de fonctionnalité, contient le code en cours de développement. (mergée dans develop une fois terminée)
Les autres branches proposées par le workflow ne sont pas décrites car non-utilisées.
L'API se base sur les conventions et normes de Restful API pour le nommage des ressources, les verbes HTTP, etc...