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.0 KiB
Plaintext
131 lines
4.0 KiB
Plaintext
---
|
||
title: Gidsargitektuur
|
||
info: ‘n Gedetailleerde blik op ons bedienergids argitektuur
|
||
image: /images/user-guide/fields/field.png
|
||
---
|
||
|
||
<Frame>
|
||
<img src="/images/user-guide/fields/field.png" alt="Header" />
|
||
</Frame>
|
||
|
||
Die agtergrond gidsstruktuur is soos volg:
|
||
|
||
```
|
||
server
|
||
└───ability
|
||
└───constants
|
||
└───core
|
||
└───database
|
||
└───decorators
|
||
└───filters
|
||
└───guards
|
||
└───health
|
||
└───integrations
|
||
└───metadata
|
||
└───workspace
|
||
└───utils
|
||
```
|
||
|
||
## Vermoë
|
||
|
||
Definieer toestemmings en sluit hanterings in vir elke entiteit.
|
||
|
||
## Versierders
|
||
|
||
Definieer pasgemaakte versierders in NestJS vir bykomende funksionaliteit.
|
||
|
||
Sien [pasgemaakte versierders](https://docs.nestjs.com/custom-decorators) vir meer besonderhede.
|
||
|
||
## Filtreerders
|
||
|
||
Sluit uitsonderingsfilters in om uitsonderings wat mag voorkom in GraphQL-eindpunte te hanteer.
|
||
|
||
## Beskermers
|
||
|
||
Sien [beskermers](https://docs.nestjs.com/guards) vir meer besonderhede.
|
||
|
||
## Gesondheid
|
||
|
||
Sluit 'n openbaar beskikbare REST API (healthz) in wat 'n JSON teruggee om te bevestig of die databasis werk soos verwag.
|
||
|
||
## Metadata
|
||
|
||
Definieer pasgemaakte voorwerpe en maak beskikbaar 'n GraphQL API (graphql/metadata).
|
||
|
||
## Werkruimte
|
||
|
||
Genereer en bedien pasgemaakte GraphQL-skema gebaseer op die metadata.
|
||
|
||
### Workspace Directory Structure
|
||
|
||
```
|
||
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
|
||
```
|
||
|
||
The root of the workspace directory includes the `workspace.factory.ts`, a file containing the `createGraphQLSchema` function. Hierdie funksie genereer 'n werksgebied-spesifieke skema deur die metadata te gebruik om 'n skema vir individuele werksgebiede aan te pas. Deur die skema- en oplosser-konstruksie te skei, gebruik ons die `makeExecutableSchema` funksie, wat hierdie afsonderlike elemente kombineer.
|
||
|
||
Hierdie strategie gaan nie net oor organisasie nie, maar help ook met optimering, soos om gegenereerde tipes definisies te kas om prestasie en skaalbaarheid te verbeter.
|
||
|
||
### Workspace Schema builder
|
||
|
||
Genereer die GraphQL-skema, en sluit in:
|
||
|
||
#### Fabrieke:
|
||
|
||
Specialised constructors to generate GraphQL-related constructs.
|
||
|
||
- Die tipe.fabriek vertaal veldmetadata na GraphQL-tipes deur die `TypeMapperService` te gebruik.
|
||
- Die tipe-definisie.fabriek skep GraphQL inset- of uitvoerobjects afgelei van `objectMetadata`.
|
||
|
||
#### GraphQL Tipes
|
||
|
||
Sluit inskrywings, insette, voorwerpe en skalare in, en dien as die boustene vir die skemakonstruksie.
|
||
|
||
#### Koppelvlakke en Voorwerp Definisies
|
||
|
||
Bevat die bloudrukke vir GraphQL-entiteite, en sluit beide vooraf gedefinieerde en pasgemaakte tipes soos `MONEY` of `URL` in.
|
||
|
||
#### Dienste
|
||
|
||
Bevat die diens verantwoordelik vir die assosiasie van FieldMetadataType met sy toepaslike GraphQL-skaal of navraag-modifikators.
|
||
|
||
#### Berging
|
||
|
||
Sluit die `TypeDefinitionsStorage` klas in wat herbruikbare tipes definisies bevat, wat duplikasie van GraphQL-tipes voorkom.
|
||
|
||
### Workspace Resolver Builder
|
||
|
||
Skep oplosserfunksies vir die bevraagtekening en verandering van die GraphQL-skema.
|
||
|
||
Elke fabriek in hierdie gids is verantwoordelik vir die vervaardiging van 'n besondere oplossertipe, soos die `FindManyResolverFactory`, wat ontwerp is vir aanpasbare toepassing oor verskeie tabelle.
|
||
|
||
### Werksgebied Navraag Loper
|
||
|
||
Voer die gegenereerde navrae op die databasis uit en ontleed die resultaat.
|