--- title: Gidsargitektuur info: ‘n Gedetailleerde blik op ons bedienergids argitektuur image: /images/user-guide/fields/field.png --- Header 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.