نضج اتحاد GraphQL (Federation) ليصبح النهج المعياري لبناء واجهات GraphQL واسعة النطاق. ويجلب Federation 2.0 تركيباً محسّناً ومعالجة أفضل للأخطاء وتجربة مطوّر معزّزة.
المشكلة التي يحلّها الاتحاد
لا تستطيع المؤسسات الكبيرة أن يمتلك فيها فريق واحد مخطط GraphQL بالكامل. يتيح الاتحاد لفِرَق مختلفة امتلاك أجزاء من المخطط مع تقديم واجهة موحّدة للعملاء.
معمارية الاتحاد
# Products Subgraph
type Product @key(fields: "id") {
id: ID!
name: String!
price: Float!
}
# Reviews Subgraph
type Product @key(fields: "id") {
id: ID!
reviews: [Review!]!
}
type Review {
id: ID!
rating: Int!
comment: String
}
المفاهيم الأساسية
- المخططات الفرعية (Subgraphs): خدمات GraphQL مستقلة تملكها فِرَق مختلفة
- الموجّه (Router): يركّب المخططات الفرعية في مخطط فائق موحّد
- الكيانات (Entities): أنواع تمتد عبر مخططات فرعية متعددة
- توجيه key@: يحدّد كيفية حلّ الكيانات عبر المخططات الفرعية
تحسينات Federation 2.0
- shareable@: يمكن لمخططات فرعية متعددة تعريف الحقل نفسه
- override@: نقل الحقول بين المخططات الفرعية
- inaccessible@: إخفاء الحقول الداخلية عن المخطط الفائق
- أخطاء أفضل: رسائل أخطاء تركيب واضحة
خيارات الموجّه
يوفّر Apollo Router (المبني على Rust، عالي الأداء) والبدائل مفتوحة المصدر مثل GraphQL Mesh خيارات مرنة لتشغيل بوّابتك الموحّدة.
التعليقات (0)
اترك تعليقًا
لا توجد تعليقات بعد. كن أول من يشارك أفكاره!