Files
twenty/packages/twenty-docs/l/pl/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.1 KiB
Plaintext

---
title: Architektura folderów
info: Szczegółowe spojrzenie na naszą architekturę folderów serwera
image: /images/user-guide/fields/field.png
---
<Frame>
<img src="/images/user-guide/fields/field.png" alt="Header" />
</Frame>
Struktura katalogów zaplecza wygląda następująco:
```
server
└───ability
└───constants
└───core
└───database
└───decorators
└───filters
└───guards
└───health
└───integrations
└───metadata
└───workspace
└───utils
```
## Ability
Definiuje uprawnienia i zawiera obsługę dla każdej encji.
## Dekoratory
Definiuje niestandardowe dekoratory w NestJS dla dodatkowej funkcjonalności.
Zobacz [dekoratory niestandardowe](https://docs.nestjs.com/custom-decorators) po więcej szczegółów.
## Filtry
Zawiera filtry wyjątków do obsługi wyjątków, które mogą wystąpić na końcówkach GraphQL.
## Guards
Zobacz [ochrony](https://docs.nestjs.com/guards) po więcej szczegółów.
## Zdrowie
Zawiera publicznie dostępne REST API (healthz), które zwraca JSON w celu potwierdzenia, czy baza danych działa zgodnie z oczekiwaniami.
## Metadane
Definiuje niestandardowe obiekty i udostępnia API GraphQL (graphql/metadata).
## Przestrzeń robocza
Generuje i obsługuje niestandardowy schemat GraphQL oparty na metadanych.
### Struktura katalogów przestrzeni roboczej
```
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
```
W korzeniu katalogu przestrzeni roboczej znajduje się `workspace.factory.ts`, plik zawierający funkcję `createGraphQLSchema`. Ta funkcja generuje specyficzny schemat dla przestrzeni roboczej, dostosowując schemat na podstawie metadanych dla indywidualnych przestrzeni roboczych. Dzięki oddzieleniu konstrukcji schematu i resolverów używamy funkcji `makeExecutableSchema`, która łączy te dyskretne elementy.
Ta strategia dotyczy nie tylko organizacji, ale także optymalizacji, takich jak buforowanie generowanych definicji typów w celu poprawy wydajności i skalowalności.
### Budowniczy schematów przestrzeni roboczej
Generuje schemat GraphQL i zawiera:
#### Fabryki:
Specjalizowane konstruktory do generowania struktur związanych z GraphQL.
- type.factory tłumaczy metadane pola na typy GraphQL używając `TypeMapperService`.
- type-definition.factory tworzy obiekty wejściowe lub wyjściowe GraphQL pochodzące z `objectMetadata`.
#### Typy GraphQL
Zawiera enumeracje, wejścia, obiekty i skalary, i służą jako elementy konstrukcyjne dla budowy schematu.
#### Interfejsy i Definicje Obiektów
Zawiera plany dla jednostek GraphQL oraz obejmuje zarówno predefiniowane, jak i niestandardowe typy, takie jak `MONEY` lub `URL`.
#### Usługi
Zawiera usługę odpowiedzialną za skojarzenie FieldMetadataType z odpowiednim skalarem GraphQL lub modyfikatorami zapytań.
#### Magazyn
Zawiera klasę `TypeDefinitionsStorage`, która zawiera wielokrotnego użytku definicje typów, zapobiegając duplikacji typów GraphQL.
### Budowniczy Resolverów Przestrzeni Roboczej
Tworzy funkcje resolverów do zapytywania i modyfikowania schematu GraphQL.
Każda fabryka w tym katalogu jest odpowiedzialna za produkcję odmiennego typu resolvera, takiego jak `FindManyResolverFactory`, zaprojektowanego do elastycznego zastosowania w różnych tabelach.
### Uruchamiacz Zapytania Przestrzeni Roboczej
Uruchamia wygenerowane zapytania do bazy danych i analizuje wynik.