Ce dépôt sert de template de base pour les projets REST API avec Javalin dans le cadre du cours IFT2255 – Génie logiciel. Il fournit une structure organisée suivant une architecture MVC (Model–View–Controller) simplifiée, prête à être utilisée pour vos travaux.
rest-api/
│
├── src/
│ ├── main/
│ │ ├── java/com/diro/ift2255/
│ │ │ ├── config/
│ │ │ │ └── Routes.java # Définition des routes HTTP
│ │ │ │
│ │ │ ├── controller/
│ │ │ │ ├── CourseController.java # Contrôleur pour les endpoints de cours
│ │ │ │ └── UserController.java # Contrôleur pour les endpoints utilisateurs
│ │ │ │
│ │ │ ├── model/
│ │ │ │ ├── Course.java # Modèle représentant un cours
│ │ │ │ └── User.java # Modèle représentant un utilisateur
│ │ │ │
│ │ │ ├── service/
│ │ │ │ ├── CourseService.java # Logique métier liée aux cours
│ │ │ │ └── UserService.java # Logique métier liée aux utilisateurs
│ │ │ │
│ │ │ ├── util/
│ │ │ │ ├── HttpClientAPI.java # Client HTTP pour appels externes
│ │ │ │ ├── HttpResponse.java # Représentation d'une réponse HTTP
│ │ │ │ ├── HttpStatus.java # Codes de statut HTTP
│ │ │ │ ├── ResponseUtil.java # Outils pour formater les réponses
│ │ │ │ └── ValidationUtil.java # Méthodes utilitaires de validation
│ │ │ │
│ │ │ └── Main.java # Point d’entrée du serveur Javalin
│ │ │
│ │ └── resources/ # Ressources utilisées dans le code
│ │
│ └── test/ # Tests unitaires (JUnit)
│
└── pom.xmlCe template suit principalement le modèle MVC :
- Model (
model/) : Représentation des entités du domaine (ex. User, Course) - Controller (
controller/) : Gestion des requêtes HTTP et appels au service - Service (
service/) : Logique métier centrale - Util (
util/) : Fonctions utilitaires réutilisables (validation, réponses, etc.) - Config (
config/) : Configuration du serveur et définition des routes Main.java: Point d’entrée du serveur (initialise Javalin et enregistre les routes)
- Respectez la séparation des responsabilités entre Controller, Service et Model.
- Utilisez les classes du dossier
util/pour les validations et la gestion des réponses HTTP. - Centralisez les routes dans
config/Routes.javapour simplifier l’ajout de nouveaux endpoints. - Ajoutez des tests unitaires pour chaque méthode de service.
- Conservez un style de code uniforme (respect du standard Java).