كل المشاريع
واجهة خلفية

خدمة متعددة الموصّلات — 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 واحد في الذاكرة خلف كل موصّل