
Abilitate
Definește permisiunile și include gestionari pentru fiecare entitate.Decoratori
Definește decoratori personalizați în NestJS pentru funcționalitate adăugată. Vezi decoratori personalizați pentru mai multe detalii.Filtre
Include filtre de excepție pentru a gestiona excepțiile care ar putea apărea în punctele finale GraphQL.Paznici
Vezi paznici pentru mai multe detalii.Sănătate
Include o API REST disponibilă public (healthz) care returnează un JSON pentru a verifica dacă baza de date funcționează așa cum este de așteptat.Metadate
Definește obiecte personalizate și face disponibilă o API GraphQL (graphql/metadata).Spațiu de lucru
Generează și servește o schemă GraphQL personalizată pe baza metadatelor.Structura Directorului de Spațiu de Lucru
workspace.factory.ts, a file containing the createGraphQLSchema function. Această funcție generează schema specifică spațiului de lucru folosind metadatele pentru a personaliza o schemă pentru spațiile de lucru individuale. Prin separarea construcției de schema și rezolvatori, folosim funcția makeExecutableSchema, care combină aceste elemente discrete.
Această strategie nu este doar despre organizare, ci ajută și la optimizare, cum ar fi caching-ul definițiilor de tip generate pentru a îmbunătăți performanța și scalabilitatea.
Constructor Schema Spațiu de Lucru
Generează schema GraphQL și include:Fabrici:
Constructori specializați pentru a genera construcții legate de GraphQL.- Tipul.fabrică traduce metadatele câmpului în tipuri GraphQL folosind
TypeMapperService. - Tipul-definiție.fabrică creează obiecte GraphQL de intrare sau ieșire derivate din
objectMetadata.
Tipuri GraphQL
Include enumerări, inputuri, obiecte și scalari și servește ca blocuri de construcție pentru construcția schema.Interfețe și Definiții de Obiect
Conține planurile pentru entitățile GraphQL și include atât tipuri predefinite, cât și personalizate, precumMONEY sau URL.
Servicii
Conține serviciul responsabil pentru asocierea FieldMetadataType cu scalarul GraphQL corespunzător sau modificatorii de interogare.Stocare
Include clasaTypeDefinitionsStorage care conține definiții de tip reutilizabile, prevenind duplicarea tipurilor GraphQL.
Constructor Rezolvator Spațiu de Lucru
Creează funcții de rezolvare pentru interogarea și modificarea schemei GraphQL. Fiecare fabrică din acest director este responsabilă pentru producerea unui tip de rezolvator distinct, cum ar fiFindManyResolverFactory, proiectată pentru aplicare adaptabilă în diverse tabele.