--- title: هيكلية المجلدات info: نظرة تفصيلية داخل هيكلية مجلدات الخادم --- الهيكلية الدليلية للمكونات الخلفية كالتالي: ``` server └───قدرات └───ثوابت └───نواة └───قاعدة البيانات └───زخارف └───فلاتر └───حمايات └───الصحة └───تكاملات └───بيانات وصفية └───مساحة العمل └───أدوات ``` ## قدرات تعريف الأذونات وتتضمن معالجات لكل كيان. ## زخارف تعريف الزخارف المخصصة في NestJS لإضافة وظائف جديدة. شاهد [زخارف مخصصة](https://docs.nestjs.com/custom-decorators) لمزيد من التفاصيل. ## الفلاتر تتضمن فلاتر استثناء لمعالجة الحالات الطارئة التي قد تحدث في نقاط GraphQL النهائية. ## حمايات شاهد [الحمايات](https://docs.nestjs.com/guards) لمزيد من التفاصيل. ## الصحة تتضمن واجهة برمجية متاحة للجميع (healthz) تعيد جيسون لتأكيد ما إذا كانت قاعدة البيانات تعمل كما هو متوقع. ## البيانات الوصفية تعريف الأشياء المخصصة وتوفر واجهة برمجية GraphQL (graphql/metadata). ## مساحة العمل توليد وتقديم مخطط GraphQL مخصص بناءً على البيانات الوصفية. ### هيكلية دليل مساحة العمل ``` workspace └───منشئ مساحة العمل └───مصانع └───أنواع GraphQL └───قاعدة البيانات └───واجهات └───تعريفات الكائنات └───خدمات └───التخزين └───أدوات └───منشئ مستعرض مساحة العمل └───مصانع └───واجهات └───منشئ الاستعلامات مساحة العمل └───مصانع └───واجهات └───مشغل استعلامات مساحة العمل └───واجهات └───أدوات └───مصدر بيانات مساحة العمل └───مدير مساحة العمل └───مشغل الانتقالات مساحة العمل └───أدوات └───workspace.module.ts └───workspace.factory.spec.ts └───workspace.factory.ts ``` يحتوي الجذر في دليل مساحة العمل على `workspace.factory.ts`، ملف يحتوي على وظيفة `createGraphQLSchema`. تولّد هذه الوظيفة مخططًا خاصًا بمساحة العمل باستخدام البيانات الوصفية لتخصيص المخطط لمساحات العمل الفردية. من خلال فصل بناء المخطط والمستعرض، نستخدم وظيفة `makeExecutableSchema`، التي تجمع بين هذه العناصر المنفصلة. تعتمد هذه الاستراتيجية على التنظيم ولا تساعد فقط في التنظيم، لكنها أيضًا تحسن الأداء، مثل تخزين تعريفات النوع المولدة مؤقتًا لتعزيز الأداء والتوسع. ### منشئ مخطط مساحة العمل يولد مخطط GraphQL، ويتضمن: #### مصانع: مصانع متخصصة لتوليد الإنشاءات المتعلقة بـ GraphQL. * المصنع النوعي يترجم بيانات الحقول الوصفية إلى أنواع GraphQL باستخدام `TypeMapperService`. * ينشئ type-definition.factory كائنات إدخال أو إخراج لـ GraphQL مشتقة من `objectMetadata`. #### أنواع GraphQL يتضمن تعدادات، إدخالات، كائنات، وأشكال بسيطة، ويعمل كنقاط بناء للمخطط. #### واجهات وتعريفات الكائنات تحتوي على مخططات للكيانات GraphQL، وتشتمل على أنواع معرفة مسبقًا ومخصصة مثل `MONEY` أو `URL`. #### خدمات تحتوي على الخدمة المسؤولة عن ربط FieldMetadataType بنوع GraphQL المناسب أو أدوات التعديل الاستعلامية. #### التخزين يتضمن فئة `TypeDefinitionsStorage` التي تحتوي على تعريفات نوع قابلة لإعادة الاستخدام، مما يمنع تكرار أنواع GraphQL. ### منشئ محلل مساحة العمل إنشاء وظائف المعالجات للاستعلام وتعديل مخطط GraphQL. كل مصنع في هذا الدليل مسؤول عن إنتاج نوع محلل مميز، مثل `FindManyResolverFactory`، المصمم للتطبيق المتكيف عبر جداول مختلفة. ### مشغل استعلامات مساحة العمل يشغل الاستعلامات المولدة على قاعدة البيانات ويحلل النتيجة.