Skip to main content
Struktura adresářů backendu je následující:

Oprávnění

Definuje oprávnění a zahrnuje zpracovníky pro každou entitu.

Dekorátory

Definuje vlastní dekorátory v NestJS pro přídavnou funkčnost. Více podrobností naleznete ve vlastních dekorátorech.

Filtry

Zahrnuje filtry výjimek k zpracování výjimek, které mohou nastat v koncových bodech GraphQL.

Guards

Více podrobností naleznete ve strážích.

Zdraví

Zahrnuje veřejně dostupné REST API (healthz), které vrací JSON k potvrzení, zda databáze funguje, jak se očekává.

Metadata

Definuje vlastní objekty a poskytuje GraphQL API (graphql/metadata).

Pracovní prostor

Generuje a poskytuje vlastní schéma GraphQL na základě metadat.

Struktura adresáře pracovního prostoru

Kořen adresáře pracovního prostoru zahrnuje workspace.factory.ts, soubor obsahující funkci createGraphQLSchema. Tato funkce generuje specifická schémata pracovních prostorů pomocí metadat pro přizpůsobení schématu individuálním pracovním prostorům. Oddělením konstrukce schématu a resolveru používáme funkci makeExecutableSchema, která kombinuje tyto různé prvky. Tato strategie neslouží pouze k organizaci, ale pomáhá i v optimalizaci, jako je ukládání vytvořených typových definic do mezipaměti pro zvýšení výkonu a škálovatelnosti.

Builder schématu pracovního prostoru

Generuje schéma GraphQL a zahrnuje:

Továrny:

Specializované konstruktory pro generování konstrukcí souvisejících s GraphQL.
  • type.factory překládá metadata pole do typů GraphQL pomocí TypeMapperService.
  • type-definition.factory vytváří vstupní nebo výstupní grafové objekty odvozené z objectMetadata.

GraphQL typy

Zahrnuje výčty, vstupy, objekty a skaláry a slouží jako stavební bloky pro konstrukci schématu.

Rozhraní a objektové definice

Obsahuje plány pro GraphQL entity a zahrnuje jak předdefinované, tak vlastní typy jako MONEY nebo URL.

Služby

Obsahuje službu, která spojuje FieldMetadataType s odpovídajícími GraphQL skalárami nebo modifikátory dotazů.

Úložiště

Zahrnuje třídu TypeDefinitionsStorage, která obsahuje opakovaně použitelné definice typů, zabraňující duplikaci typů GraphQL.

Builder resolveru pracovního prostoru

Vytváří funkce pro řešení dotazů a mutací v GraphQL schématu. Každá továrna v tomto adresáři je zodpovědná za produkci specifického typu resolveru, jako je továrna FindManyResolverFactory, navržená pro adaptabilní aplikaci na různé tabulky.

Runner dotazů pracovního prostoru

Spouští vygenerované dotazy na databázi a analyzuje výsledek.