Created by Github action --------- Co-authored-by: Crowdin Bot <support+bot@crowdin.com> Co-authored-by: github-actions <github-actions@twenty.com>
131 lines
4.6 KiB
Plaintext
131 lines
4.6 KiB
Plaintext
---
|
|
title: ארכיטקטורת תיקיות
|
|
info: מבט מעמיק על ארכיטקטורת תיקיות השרת שלנו
|
|
image: /images/user-guide/fields/field.png
|
|
---
|
|
|
|
<Frame>
|
|
<img src="/images/user-guide/fields/field.png" alt="Header" />
|
|
</Frame>
|
|
|
|
מבנה ספריית ה-backend הוא כמתואר להלן:
|
|
|
|
```
|
|
server
|
|
└───ability
|
|
└───constants
|
|
└───core
|
|
└───database
|
|
└───decorators
|
|
└───filters
|
|
└───guards
|
|
└───health
|
|
└───integrations
|
|
└───metadata
|
|
└───workspace
|
|
└───utils
|
|
```
|
|
|
|
## יכולת
|
|
|
|
מגדיר הרשאות ומכיל מטפלים עבור כל ישות.
|
|
|
|
## קישוטים
|
|
|
|
מגדיר קישוטים מותאמים אישית ב-NestJS לשיפור פונקציונאליות.
|
|
|
|
ראה [קישוטים מותאמים אישית](https://docs.nestjs.com/custom-decorators) למידע נוסף.
|
|
|
|
## מסננים
|
|
|
|
Includes exception filters to handle exceptions that might occur in GraphQL endpoints.
|
|
|
|
## שומרים
|
|
|
|
ראה [שומרים](https://docs.nestjs.com/guards) למידע נוסף.
|
|
|
|
## בריאות
|
|
|
|
כולל ממשק API REST שזמין לציבור (healthz) שמחזיר JSON לאישור האם מסד הנתונים פועל כראוי.
|
|
|
|
## מטה-נתונים
|
|
|
|
מגדיר אובייקטים מותאמים אישית ומספק API של GraphQL (graphql/metadata).
|
|
|
|
## סביבת עבודה
|
|
|
|
מייצר ומספק סכמות GraphQL מותאמות אישית בהתבסס על המטא נתונים.
|
|
|
|
### מבנה ספריית מרחב העבודה
|
|
|
|
```
|
|
workspace
|
|
|
|
└───workspace-schema-builder
|
|
└───factories
|
|
└───graphql-types
|
|
└───database
|
|
└───interfaces
|
|
└───object-definitions
|
|
└───services
|
|
└───storage
|
|
└───utils
|
|
└───workspace-resolver-builder
|
|
└───factories
|
|
└───interfaces
|
|
└───workspace-query-builder
|
|
└───factories
|
|
└───interfaces
|
|
└───workspace-query-runner
|
|
└───interfaces
|
|
└───utils
|
|
└───workspace-datasource
|
|
└───workspace-manager
|
|
└───workspace-migration-runner
|
|
└───utils
|
|
└───workspace.module.ts
|
|
└───workspace.factory.spec.ts
|
|
└───workspace.factory.ts
|
|
```
|
|
|
|
השורש של ספריית מרחב העבודה כולל את `workspace.factory.ts`, קובץ שמכיל את הפונקציה `createGraphQLSchema`. פונקציה זו מייצרת סכמות ייחודיות למרחב עבודה על ידי שימוש במטא נתונים להתאמה אישית של סכמה עבור כל מרחב עבודה. על ידי הפרדת יצירת הסכמות והפותר, אנו משתמשים בפונקציה `makeExecutableSchema`, שמאחדת אלמנטים נפרדים אלה.
|
|
|
|
אסטרטגיה זו אינה רק עבור ארגון, אלא גם תורמת לאופטימיזציה, כגון קאש על הגדרות סוגים שנוצרו כדי לשפר ביצועים וסקלאביליות.
|
|
|
|
### בונה סכמות מרחב עבודה
|
|
|
|
מייצר את סכמת ה-GraphQL, וכולל:
|
|
|
|
#### מפעלים:
|
|
|
|
קונסטרוקציות מותמחות ליצירת מבני GraphQL קשורים.
|
|
|
|
- factory.type מתרגם מטא נתוני שדות לסוגי GraphQL באמצעות `TypeMapperService`.
|
|
- factory.type-definition יוצר אובייקטי קלט או פלט של GraphQL מתוך `objectMetadata`.
|
|
|
|
#### סוגי GraphQL
|
|
|
|
כולל אנומרציות, קלטים, אובייקטים, וסקלרים, ומשרת כתשתית לבניית סכמות.
|
|
|
|
#### ממשקים והגדרות אובייקטים
|
|
|
|
מכיל תוכניות עבור ישויות GraphQL, וכולל גם סוגים מראש וגם סוגים מותאמים אישית כגון `MONEY` או `URL`.
|
|
|
|
#### שירותים
|
|
|
|
Contains the service responsible for associating FieldMetadataType with its appropriate GraphQL scalar or query modifiers.
|
|
|
|
#### אחסון
|
|
|
|
כולל את המחלקה `TypeDefinitionsStorage` שמכילה הגדרות סוגים לשימוש חוזר, המונעת שכפול סוגי GraphQL.
|
|
|
|
### בונה פותר מרחב עבודה
|
|
|
|
מייצר פונקציות פותר לשאילתות ועדכונים של סכמת ה-GraphQL.
|
|
|
|
כל מפעל במאגר זה אחראי לייצר סוג פותר ייחודי, כמו `FindManyResolverFactory`, המעוצב ליישום אדפטיבי על פני טבלאות שונות.
|
|
|
|
### Workspace Query Runner
|
|
|
|
מריץ את השאלות שנוצרו על מסד הנתונים ומפרש את התוצאה.
|