📦

graphql

آمن

بناء واجهات برمجة تطبيقات GraphQL آمنة مع أفضل الممارسات

يمكن أن تؤدي مرونة GraphQL إلى مشاكل في الأداء والأمان دون ضوابط مناسبة. توفر هذه المهارة أنماطاً مثبتة لاستخدام DataLoader، وتحديد عمق الاستعلام، والتفويض لبناء واجهات برمجة تطبيقات GraphQL جاهزة للإنتاج.

يدعم: Claude Codex Code(CC)
📊 71 كافٍ
1

تنزيل ZIP المهارة

2

رفع في Claude

اذهب إلى Settings → Capabilities → Skills → Upload skill

3

فعّل وابدأ الاستخدام

اختبرها

استخدام "graphql". تصميم مخطط لكتالوج منتجات تجارة إلكترونية

النتيجة المتوقعة:

  • مخطط GraphQL مع أنواع Product و Category و Review
  • قابلية عدم مناسبة للحقول الاختيارية مثل discountPrice
  • اتصالات للترقيم الصفحي لمراجعات المنتج
  • طفرات لعمليات CRUD مع أنواع الإدخال

استخدام "graphql". إصلاح استعلامات N+1 في محلل منشورات المستخدم

النتيجة المتوقعة:

  • تطبيق DataLoader يجمع عمليات بحث معرف المستخدم
  • تخزين مؤقت بمفتاح معرف المستخدم لمنع الاستعلامات المكررة
  • التكامل مع سياق Apollo Server
  • تحسين الأداء من N استعلامات إلى استعلام مجمع واحد

التدقيق الأمني

آمن
v1 • 2/25/2026

This skill is a documentation file containing GraphQL best practices and patterns. Static analysis flagged false positives: line 69 references related skills (not shell execution), and lines 3, 22, 34, 63, 72 contain markdown content (not cryptographic code). No executable code or security risks detected.

1
الملفات التي تم فحصها
73
الأسطر التي تم تحليلها
0
النتائج
1
إجمالي عمليات التدقيق
لا توجد مشكلات أمنية
تم تدقيقه بواسطة: claude

درجة الجودة

38
الهندسة المعمارية
100
قابلية الصيانة
87
المحتوى
32
المجتمع
100
الأمان
91
الامتثال للمواصفات

ماذا يمكنك بناءه

مطور واجهة خلفية يبني واجهة برمجة تطبيقات جديدة

تصميم وتنفيذ واجهة برمجة تطبيقات GraphQL جاهزة للإنتاج مع تحسينات أداء مناسبة وضوابط أمان من البداية.

فريق الواجهة الأمامية يدمج GraphQL

إعداد Apollo Client مع تخزين مؤقت طبيعي وأنماط جلب بيانات فعالة لتطبيقات React.

قائد تقني يدقق واجهة برمجة تطبيقات موجودة

تحديد وإصلاح الأنماط المضادة الشائعة في GraphQL مثل عدم وجود DataLoader، وعمق استعلام غير محدود، وفجوات التفويض.

جرّب هذه الموجهات

تصميم مخطط GraphQL أساسي
أنشئ مخطط GraphQL لمدونة يحتوي على أنواع User و Post و Comment. ضمّن قابلية عدم مناسبة، وعلاقات، وعمليات CRUD شائعة كاستعلامات وطفرات.
تطبيق DataLoader لمنع N+1
لدي محلل GraphQL يجلب المؤلفين للمنشورات. كل محلل منشورات يقوم باستعلام قاعدة بيانات منفصل. أرني كيفية تطبيق DataLoader لتجميع هذه الاستعلامات وتخزينها مؤقتاً.
إضافة تحديد عمق الاستعلام
تطبيق التفويض على مستوى الحقل
أرني كيفية تطبيق التفويض على مستوى الحقل في محاليل GraphQL. بعض الحقول يجب أن تكون مرئية فقط للمستخدمين المصادق عليهم أو المستخدمين بأدوار محددة.

أفضل الممارسات

  • استخدم دائماً DataLoader لتجميع استعلامات قاعدة البيانات ومنع مشاكل N+1
  • حدّ من عمق الاستعلام والتعقيد للحماية من هجمات DoS
  • طبّق التفويض في المحاليل، وليس فقط توجيهات المخطط

تجنب

  • إجراء اتصالات قاعدة البيانات مباشرة في المحاليل بدون DataLoader
  • السماح بعمق استعلام غير محدود في نقطة نهاية GraphQL الخاصة بك
  • الاعتماد فقط على توجيهات المخطط لمنطق التفويض

الأسئلة المتكررة

لماذا يعتبر DataLoader ضرورياً لـ GraphQL؟
بدون DataLoader، كل محلل حقول يقوم باستعلامات قاعدة بيانات مستقلة. استعلام واحد يجلب 10 منشورات مع مؤلفيها يُ触发 11 استعلاماً (1 للمنشورات، 10 للمؤلفين). DataLoader يجمع هذه في استعلامين، مما يحسن الأداء بشكل كبير.
هل يجب تمكين الاستبطان في الإنتاج؟
بشكل عام لا. الاستبطان يعرض هيكل المخطط بالكامل للعملاء. بينما هو مفيد لأدوات التطوير، يمكن أن يساعد المهاجمين على فهم واجهة برمجة التطبيقات الخاصة بك. قم بتعطيله في الإنتاج ما لم تكن بحاجة تحديداً لدعم أدوات العميل.
ما الفرق بين تفويض المخطط وتفويض المحلل؟
توجيهات المخطط تعلن من يمكنه الوصول إلى ماذا على مستوى النوع/الحقل. تفويض المحلل ينفذ المنطق الفعلي. طبّق دائماً التفويض في المحاليل؛ يمكن تجاوز التوجيهات وحدها أو تكوينها بشكل خاطئ.
كيف أتعامل مع الأخطاء مقابل البيانات null في GraphQL؟
استخدم قابلية عدم مناسبة في مخططك. إذا كان يمكن أن يكون الحقل فارغاً بشكل شرعي، اجعله قابلاً للعدم. إذا يجب أن يكون له قيمة، اجعله غير قابل للعدم. عندما يفشل حقل غير قابل للعدم، تجعل GraphQL الكائن الأب بأكمله null، مما يمكن أن يكسر الاستعلامات.
ما حد عمق الاستعلام الذي يجب استخدامه؟
ابدأ بحد عمق 5-10 لمعظم واجهات برمجة التطبيقات. راقب استعلاماتك الشرعية وعدّل وفقاً لذلك. طبّق أيضاً تحليل تعقيد الاستعلام لاكتشاف الاستعلامات المكلفة ولكن الضحلة التي تتجاوز حدود العمق.
هل أحتاج إلى تنظيف اشتراكات GraphQL؟
نعم. الاشتراكات تحافظ على اتصالات مفتوحة. عندما يقطع العملاء الاتصال، تأكد من تنظيف معالجات الاشتراك من جانب الخادم بشكل صحيح لمنع تسرب الذاكرة. طبّق التنظيف في محاليل الاشتراك الخاصة بك باستخدام خطافات دورة الحياة المناسبة.

تفاصيل المطور

المؤلف

sickn33

الترخيص

MIT

مرجع

main

بنية الملفات

📄 SKILL.md