كل المشاريع
واجهة خلفية
خدمة حسابات بنكية مصغّرة — REST · GraphQL · Data REST
خدمة حسابات بنكية مصغّرة تعرض نفس المجال عبر ثلاث واجهات — واجهة REST مكتوبة يدوياً، وواجهة GraphQL، وSpring Data REST المُولَّد تلقائياً — مع طبقة DTO/mapper، وتوثيق OpenAPI/Swagger، ومخزن H2.
3
API interfaces
5
CRUD endpoints
H2
Store
Swagger/GraphiQL
Docs
المنهجية
تصميم طبقي web→service→repository يعرض مجالاً واحداً عبر REST وGraphQL وSpring Data REST
المكدس التقني
Java 17Spring Boot 3.3Spring Data JPAGraphQLSpring Data RESTH2OpenAPI/SwaggerMaven
الكلمات المفتاحية
Spring BootRESTGraphQLSpring Data RESTJPADTOSwaggerH2
التعمق
خدمة مصغّرة نظيفة ذات طبقات لإدارة الحسابات البنكية والعملاء، تعرض نفس البيانات بثلاث طرق لمقارنة الواجهات المكتوبة يدوياً مع المُولَّدة تلقائياً.
البنية الطبقية
الويب (وحدات تحكم REST + resolvers لـ GraphQL + Spring Data REST)
│
طبقة الخدمة (منطق الأعمال، @Transactional)
│
المستودعات (Spring Data JPA)
│
الكيانات (BankAccount ── Customer، تعداد AccountType)
المجال
| الكيان | الحقول |
|---|---|
| BankAccount | المعرّف، التاريخ، الرصيد، العملة، AccountType، → Customer |
| Customer | يملك عدة حسابات |
| AccountType | تعداد (مثلاً CURRENT / SAVINGS) |
الواجهات
- ◂REST
/api/bankAccounts— CRUD كامل (GET/POST/PUT/DELETE) + Swagger UI - ◂GraphQL — استعلامات
accountsList،bankAccountById(id)،customersList+ عمليات add/update/delete (GraphiQL) - ◂Spring Data REST — مستودع معروض تلقائياً كنقاط نهاية hypermedia
- ◂طبقة DTO + mapper تفصل الكيانات عن سطح الـ API