Apollo Router Core عبارة عن موجه رسومي عالي الأداء وقابل للتكوين ومكتوب بلغة Rust لتشغيل رسم بياني فائق متحد يستخدم Apollo Union 2.
يتم اختبار Apollo Router Core بشكل جيد، ويتم قياسه بانتظام، ويتضمن معظم الميزات الرئيسية لـ Apollo Gateway، وهو قادر على خدمة أعباء العمل على مستوى الإنتاج.
يمكن العثور على الإصدارات الجديدة وملاحظات الإصدار الخاصة بها (جنبًا إلى جنب مع الملاحظات حول أي تغييرات عاجلة) في صفحة الإصدارات، ويمكن دائمًا العثور على أحدث إصدار في أحدث صفحة. يحتوي CHANGELOG.md
الموجود في جذر هذا المستودع أيضًا على تغييرات لم يتم إصدارها بالإضافة إلى سجل التغييرات الكامل.
حاليًا، نقوم بنشر إصدارات جديدة كل أسبوع أو أسبوعين.
اتبع البرنامج التعليمي للبدء السريع لبدء تشغيل جهاز التوجيه.
راجع الوثائق لمزيد من التفاصيل.
يتطلب Apollo Router Core تمرير ملف supergraph كوسيطة --supergraph
وملف تكوين اختياري. ليتم توفيرها. إما أن تكون موجودة في الدليل الحالي أو يتم تحديدها بشكل صريح عبر العلامة، إما عن طريق مسار مطلق، أو مسار متعلق بالدليل الحالي.
Usage:
Commands:
config Configuration subcommands
help Print this message or the help of the given subcommand(s)
Options:
--log
Log level (off|error|warn|info|debug|trace) [env: APOLLO_ROUTER_LOG=] [default: info]
--hot-reload
Reload locally provided configuration and supergraph files automatically. This only affects watching of local files and does not affect supergraphs and configuration provided by GraphOS through Uplink, which is always reloaded immediately [env: APOLLO_ROUTER_HOT_RELOAD=]
-c, --config
Configuration location relative to the project directory [env: APOLLO_ROUTER_CONFIG_PATH=]
--dev
Enable development mode [env: APOLLO_ROUTER_DEV=]
-s, --supergraph
Schema location relative to the project directory [env: APOLLO_ROUTER_SUPERGRAPH_PATH=]
--apollo-uplink-endpoints
The endpoints (comma separated) polled to fetch the latest supergraph schema [env: APOLLO_UPLINK_ENDPOINTS=]
--apollo-uplink-poll-interval
The time between polls to Apollo uplink. Minimum 10s [env: APOLLO_UPLINK_POLL_INTERVAL=] [default: 10s]
--anonymous-telemetry-disabled
Disable sending anonymous usage information to Apollo [env: APOLLO_TELEMETRY_DISABLED=]
--apollo-uplink-timeout
The timeout for an http call to Apollo uplink. Defaults to 30s [env: APOLLO_UPLINK_TIMEOUT=] [default: 30s]
--listen
The listen address for the router. Overrides `supergraph.listen` in router.yaml [env: APOLLO_ROUTER_LISTEN_ADDRESS=]
-V, --version
Display version and exit
-h, --help
Print help
تقوم Apollo ببناء أدوات مفتوحة المصدر وخدمات تجارية لتسهيل تطوير التطبيقات وتحسينها وإتاحتها لعدد أكبر من الأشخاص. نحن نساعدك على الشحن بشكل أسرع مع:
اطلع على منصة التعلم Odyssey، المكان المثالي لبدء رحلتك في GraphQL بمقاطع الفيديو وتحديات التعليمات البرمجية التفاعلية. انضم إلى مجتمع Apollo للتفاعل مع مجتمع GraphQL والحصول على المساعدة الفنية منه.
يعتمد تطوير Apollo Router Core على مبادئ التصميم التالية التي تحدد قرارات الهندسة وتنفيذها.
الصحة: يسعى جهاز التوجيه إلى أن يكون التنفيذ الأكثر صحة لـ GraphQL والاتحاد، ونحن نهتم باختبار وتوثيق كل ما تتضمنه المواصفات، حتى حالات الفشل. يجب أن يتبع سلوك جهاز التوجيه مبدأ أقل مفاجأة للمطورين.
الموثوقية: يعد جهاز التوجيه جزءًا مهمًا من واجهات برمجة تطبيقات GraphQL، لذا يجب أن يكون أحد أقوى أجزاء البنية التحتية. وهذا يعني الاستقرار في سلوكها (عدم حدوث أعطال، أو حلقات لا نهائية، أو تسريبات، وما إلى ذلك)، والتوافر (زمن الوصول المتوقع، واستخدام ذاكرة الوصول العشوائي ووحدة المعالجة المركزية، وقابلية التوسع) وقابلية المراقبة (المقاييس، والتنبيهات). وينبغي أن يمنح ثقة قوية للعاملين في البنية التحتية بأنهم يستطيعون معرفة حدودها وتشغيلها بأمان.
التجريب الآمن: سيدعم جهاز التوجيه جميع الأعمال المستقبلية حول الاتحاد، لذلك يجب أن يسمح بأفكار واستكشافات جديدة دون إزعاج الميزات الموجودة. المشروع لا يزال في طور الحركة، ولا يمكننا أن نسمح له بالتبلور في وقت مبكر جدًا، مع اتباع مبادئ الصحة والموثوقية.
سهولة الاستخدام: يجب أن يكون جهاز التوجيه سهل التشغيل. فضل قابلية التوسعة على خيارات التكوين، وتأكد من أن المستخدم لديه معلومات كافية لمساعدة نفسه عندما تسوء الأمور. على سبيل المثال:
دليل المبادئ التالية:
قابلية اختبار الوحدة: يجب أن تكون جميع التعليمات البرمجية الجديدة قابلة للاختبار من خلال الوحدة، أو أن يكون لها سبب وجيه لعدم ذلك. قد يعني هذا قضاء بعض الوقت الإضافي للتأكد من أن الكود قابل للاختبار بشكل منفصل. لا تعتمد فقط على اختبار التكامل.
مجموعة اختبار التكامل: سنتكامل مع مجموعة اختبار البوابة ونساعد في تحسينها لاختبار جميع جوانب المواصفات. على وجه الخصوص، ستتحقق مجموعة الاختبار هذه من حالات الفشل مثل الاستعلامات غير الصالحة أو مشكلات الشبكة. يجب أن تكون اختبارات التكامل مقاومة للرصاص، ويجب ألا تفشل في حالة تنفيذ الاختبار البطيء أو ظروف السباق.
القياس والتعلم: يجب اختبار وقياس الموثوقية من خلال المعايير والتنميط ومن خلال استكشاف حدود جهاز التوجيه. نريد أن نتعلم كيفية تشغيل الراوتر وما هي النقطة الاسمية له. ولتحقيق هذه الغاية، يجب تجهيز جهاز التوجيه بالتفصيل، مما يسمح لنا بقياس مدى تأثير تغييرات التعليمات البرمجية عليه. نحن نهتم بشكل خاص بقياس النفقات العامة للميزات الجديدة، لتقليل زمن الوصول واستخدام الموارد.
القابلية للتوسعة: من خلال السماح للملحقات والتوجيهات بتعديل سلوك جهاز التوجيه، يمكننا إجراء التجارب واختبار الميزات الجديدة دون التأثير على استعلامات أو نقاط نهاية محددة. بالإضافة إلى ذلك، من السهل إلغاء تنشيط هذه التجارب في وقت التشغيل (أعلام الميزات، جزر الكناري، وما إلى ذلك).
أبولو الرسم البياني، وشركة
تتم تغطية كود المصدر في هذا المستودع بواسطة Elastic License 2.0. الإعداد الافتراضي في جميع أنحاء المستودع هو الترخيص بموجب Elastic License 2.0، ما لم يحدد رأس الملف أو ملف الترخيص الموجود في دليل فرعي ترخيصًا آخر. راجع الترخيص للحصول على نص الترخيص الكامل.