Files
twenty/packages/twenty-docs/l/af/developers/backend-development/folder-architecture-server.mdx
T
8cadd00d34 i18n - translations (#15799)
Created by Github action

---------

Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: github-actions <github-actions@twenty.com>
2025-11-13 16:34:00 +01:00

131 lines
4.0 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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.