كل المشاريع
واجهة خلفية
خدمة متعددة الموصّلات — REST · GraphQL · SOAP · gRPC
خدمة أعمال واحدة معروضة في آنٍ واحد عبر أربعة أنماط تواصل — REST وGraphQL وSOAP وgRPC — ثم تستهلكها خدمة مصغّرة ثانية عبر REST (OpenFeign) وgRPC. دراسة موازِنة لبروتوكولات الـ API على نفس مجال العملاء.
4
Protocols exposed
H2
Provider store
Protobuf
gRPC contract
Apache CXF
SOAP stack
المنهجية
عرض مجال Customer عبر REST/GraphQL/SOAP/gRPC؛ واستهلاكه عبر Feign وstub لـ gRPC
المكدس التقني
Java 17Spring Boot 3.1gRPCProtocol BuffersGraphQLSOAP (Apache CXF)OpenFeignH2
الكلمات المفتاحية
RESTGraphQLSOAPgRPCProtocol BuffersApache CXFOpenFeignSpring Boot
التعمق
مشروع لمقارنة البروتوكولات: نفس مجال Customer يُنشَر عبر أربعة موصّلات في آنٍ واحد، ثم تستهلكه خدمة ثانية — مثاليّ لفهم المفاضلات بين REST وGraphQL وSOAP وgRPC.
البنية
┌──────────────────────────────────────────┐
│ customer-data-service (المزوّد، H2) │
│ ├── 🟢 REST CustomerRestController │ + Swagger UI
│ ├── 🔵 GraphQL CustomerGraphQLController │ schema.graphqls
│ ├── 🟠 SOAP CustomerSoapService │ Apache CXF
│ └── 🟣 gRPC CustomerGrpcService │ CustomerService.proto
└───────────────┬───────────────┬────────────┘
│ REST (Feign) │ gRPC (stub)
▼ ▼
┌──────────────────────────────┐
│ account-data-service (العميل)│
└──────────────────────────────┘
ما يوضّحه
- ◂نفس الكيان يُقدَّم بأربع طرق → وحدات تحكم/عقود قابلة للمقارنة مباشرة
- ◂عقد gRPC مُعرَّف في
CustomerService.proto(Protocol Buffers)؛ وSOAP عبر Apache CXF - ◂يوضّح العميل نمطَي تكامل: OpenFeign (REST) وعميل stub لـ gRPC
- ◂مخزن H2 واحد في الذاكرة خلف كل موصّل