Tous les Projets
Backend
Microservice de Comptes Bancaires — REST · GraphQL · Data REST
Un microservice de comptes bancaires exposant le même domaine via trois interfaces — une API REST écrite à la main, une API GraphQL, et Spring Data REST auto-généré — avec couche DTO/mapper, documentation OpenAPI/Swagger et base H2.
3
API interfaces
5
CRUD endpoints
H2
Store
Swagger/GraphiQL
Docs
Approche
Conception en couches web→service→repository exposant un domaine via REST, GraphQL et Spring Data REST
Stack Technique
Java 17Spring Boot 3.3Spring Data JPAGraphQLSpring Data RESTH2OpenAPI/SwaggerMaven
Mots-clés
Spring BootRESTGraphQLSpring Data RESTJPADTOSwaggerH2
Analyse Approfondie
Un microservice en couches propre pour gérer comptes bancaires et clients, exposant les mêmes données de trois façons pour comparer API écrites à la main vs auto-générées.
Architecture en couches
Web (contrôleurs REST + resolvers GraphQL + Spring Data REST)
│
Couche service (logique métier, @Transactional)
│
Repositories (Spring Data JPA)
│
Entités (BankAccount ── Customer, enum AccountType)
Domaine
| Entité | Champs |
|---|---|
| BankAccount | id, date, solde, devise, AccountType, → Customer |
| Customer | possède plusieurs BankAccounts |
| AccountType | enum (ex. CURRENT / SAVINGS) |
Interfaces
- ▸REST
/api/bankAccounts— CRUD complet (GET/POST/PUT/DELETE) + Swagger UI - ▸GraphQL — requêtes
accountsList,bankAccountById(id),customersList+ mutations add/update/delete (GraphiQL) - ▸Spring Data REST — repository auto-exposé en endpoints hypermédia
- ▸Couche DTO + mapper qui découple les entités de la surface API