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