Tous les Projets
Backend
Service Multi-Connecteurs — REST · GraphQL · SOAP · gRPC
Un même service métier exposé simultanément via quatre styles de communication — REST, GraphQL, SOAP et gRPC — puis consommé par un second microservice en REST (OpenFeign) et gRPC. Une étude comparative des protocoles d'API sur le même domaine Customer.
4
Protocols exposed
H2
Provider store
Protobuf
gRPC contract
Apache CXF
SOAP stack
Approche
Exposer un domaine Customer en REST/GraphQL/SOAP/gRPC ; le consommer via Feign et un stub gRPC
Stack Technique
Java 17Spring Boot 3.1gRPCProtocol BuffersGraphQLSOAP (Apache CXF)OpenFeignH2
Mots-clés
RESTGraphQLSOAPgRPCProtocol BuffersApache CXFOpenFeignSpring Boot
Analyse Approfondie
Un projet de comparaison de protocoles : le même domaine Customer est publié via quatre connecteurs en même temps, puis consommé par un second service — idéal pour comprendre les compromis entre REST, GraphQL, SOAP et gRPC.
Architecture
┌──────────────────────────────────────────┐
│ customer-data-service (fournisseur, H2) │
│ ├── 🟢 REST CustomerRestController │ + Swagger UI
│ ├── 🔵 GraphQL CustomerGraphQLController │ schema.graphqls
│ ├── 🟠 SOAP CustomerSoapService │ Apache CXF
│ └── 🟣 gRPC CustomerGrpcService │ CustomerService.proto
└───────────────┬───────────────┬────────────┘
│ REST (Feign) │ gRPC (stub)
▼ ▼
┌──────────────────────────────┐
│ account-data-service (client)│
└──────────────────────────────┘
Ce qu'il démontre
- ▸La même entité servie de quatre façons → contrôleurs/contrats directement comparables
- ▸Contrat gRPC défini dans
CustomerService.proto(Protocol Buffers) ; SOAP via Apache CXF - ▸Le consommateur illustre deux modes d'intégration : OpenFeign (REST) et un client stub gRPC
- ▸Un seul magasin H2 en mémoire derrière chaque connecteur