Initial commit: GBCM Server API with DTOs, interfaces and enums
This commit is contained in:
152
README.md
Normal file
152
README.md
Normal file
@@ -0,0 +1,152 @@
|
||||
# GBCM Server API
|
||||
|
||||
Contrats d'API et DTOs pour la plateforme GBCM (Global Business Consulting and Management).
|
||||
|
||||
## Description
|
||||
|
||||
Ce module contient les définitions d'interfaces, DTOs (Data Transfer Objects), énumérations et exceptions partagées entre le client et le serveur GBCM.
|
||||
|
||||
## Technologies
|
||||
|
||||
- **Java 17** - Langage de programmation
|
||||
- **Jakarta Validation 3.0** - Validation des données
|
||||
- **Jakarta REST 3.1** - Annotations REST
|
||||
- **Jackson** - Sérialisation JSON
|
||||
- **Swagger/OpenAPI 3** - Documentation API
|
||||
- **Maven** - Gestion des dépendances
|
||||
|
||||
## Structure du projet
|
||||
|
||||
```
|
||||
src/main/java/com/gbcm/server/api/
|
||||
├── dto/ # Data Transfer Objects
|
||||
│ ├── auth/ # DTOs authentification
|
||||
│ ├── user/ # DTOs utilisateurs
|
||||
│ ├── coaching/ # DTOs coaching
|
||||
│ ├── workshop/ # DTOs ateliers
|
||||
│ ├── billing/ # DTOs facturation
|
||||
│ └── common/ # DTOs communs
|
||||
├── interfaces/ # Interfaces de service
|
||||
│ ├── AuthService.java
|
||||
│ ├── UserService.java
|
||||
│ ├── CoachingService.java
|
||||
│ └── WorkshopService.java
|
||||
├── enums/ # Énumérations
|
||||
│ ├── UserRole.java
|
||||
│ ├── ServiceType.java
|
||||
│ └── PaymentStatus.java
|
||||
└── exceptions/ # Exceptions métier
|
||||
├── GBCMException.java
|
||||
├── AuthenticationException.java
|
||||
└── ValidationException.java
|
||||
```
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
git clone https://git.lions.dev/gbcm/gbcm-server-api.git
|
||||
cd gbcm-server-api
|
||||
mvn clean install
|
||||
```
|
||||
|
||||
## Utilisation
|
||||
|
||||
Ce module est une dépendance partagée utilisée par :
|
||||
- `gbcm-client-impl-quarkus` - Interface web
|
||||
- `gbcm-server-impl-quarkus` - Implémentation serveur
|
||||
- `gbcm-mobile-app` - Application mobile (via REST)
|
||||
|
||||
### Ajout de la dépendance
|
||||
|
||||
```xml
|
||||
<dependency>
|
||||
<groupId>com.gbcm</groupId>
|
||||
<artifactId>gbcm-server-api</artifactId>
|
||||
<version>1.0.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
```
|
||||
|
||||
## DTOs Principaux
|
||||
|
||||
### Authentification
|
||||
- `LoginRequestDTO` - Requête de connexion
|
||||
- `LoginResponseDTO` - Réponse de connexion
|
||||
- `UserDTO` - Informations utilisateur
|
||||
|
||||
### Services
|
||||
- `WorkshopDTO` - Informations atelier
|
||||
- `CoachingSessionDTO` - Session de coaching
|
||||
- `InvoiceDTO` - Facturation
|
||||
|
||||
## Interfaces de Service
|
||||
|
||||
### AuthService
|
||||
- `login()` - Authentification
|
||||
- `logout()` - Déconnexion
|
||||
- `refreshToken()` - Rafraîchissement token
|
||||
- `validateToken()` - Validation token
|
||||
|
||||
### UserService
|
||||
- `createUser()` - Création utilisateur
|
||||
- `updateUser()` - Mise à jour
|
||||
- `getUserById()` - Récupération par ID
|
||||
|
||||
## Énumérations
|
||||
|
||||
### UserRole
|
||||
- `ADMIN` - Administrateur
|
||||
- `COACH` - Coach/Consultant
|
||||
- `CLIENT` - Client
|
||||
- `PROSPECT` - Prospect
|
||||
- `MANAGER` - Manager
|
||||
|
||||
## Validation
|
||||
|
||||
Toutes les DTOs incluent des annotations de validation Jakarta :
|
||||
- `@NotNull`, `@NotBlank` - Champs obligatoires
|
||||
- `@Email` - Format email
|
||||
- `@Size` - Taille des chaînes
|
||||
- `@Valid` - Validation en cascade
|
||||
|
||||
## Documentation OpenAPI
|
||||
|
||||
La documentation API est générée automatiquement via les annotations Swagger :
|
||||
- Descriptions des endpoints
|
||||
- Schémas des DTOs
|
||||
- Exemples de requêtes/réponses
|
||||
|
||||
## Tests
|
||||
|
||||
```bash
|
||||
mvn test
|
||||
```
|
||||
|
||||
## Build
|
||||
|
||||
```bash
|
||||
# Build standard
|
||||
mvn clean package
|
||||
|
||||
# Installation locale
|
||||
mvn clean install
|
||||
|
||||
# Déploiement (si configuré)
|
||||
mvn deploy
|
||||
```
|
||||
|
||||
## Versioning
|
||||
|
||||
Ce module suit le versioning sémantique :
|
||||
- `MAJOR.MINOR.PATCH`
|
||||
- Changements breaking = MAJOR
|
||||
- Nouvelles fonctionnalités = MINOR
|
||||
- Corrections de bugs = PATCH
|
||||
|
||||
## Support
|
||||
|
||||
- Email: support@gbcm.com
|
||||
- Documentation: https://docs.gbcm.com/api
|
||||
|
||||
## Licence
|
||||
|
||||
Propriétaire - GBCM LLC © 2024
|
||||
Reference in New Issue
Block a user