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
BankAccountid, date, solde, devise, AccountType, → Customer
Customerpossède plusieurs BankAccounts
AccountTypeenum (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