153 lines
3.6 KiB
Markdown
153 lines
3.6 KiB
Markdown
# 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
|