Capacità
Definisce le autorizzazioni e include gestori per ciascuna entità.Decoratori
Definisce decoratori personalizzati in NestJS per funzionalità aggiuntive. Vedi decoratori personalizzati per maggiori dettagli.Filtri
Include filtri di eccezione per gestire le eccezioni che potrebbero verificarsi nei punti finali GraphQL.Guards
Vedi guards per ulteriori dettagli.Stato di salute
Include un’API REST pubblicamente disponibile (healthz) che restituisce un JSON per confermare se il database funziona correttamente.Metadati
Definisce oggetti personalizzati e rende disponibile un’API GraphQL (graphql/metadata).Workspace
Genera e serve schemi GraphQL personalizzati basati sui metadati.Struttura della directory dello spazio di lavoro
workspace.factory.ts, un file contenente la funzione createGraphQLSchema. Questa funzione genera uno schema specifico per il workspace utilizzando i metadati per adattare uno schema per i singoli lavori. Separando la costruzione dello schema e del risolutore, utilizziamo la funzione makeExecutableSchema, che combina questi elementi discreti.
Questa strategia non riguarda solo l’organizzazione, ma aiuta anche con l’ottimizzazione, come la memorizzazione nella cache delle definizioni di tipo generate per migliorare le prestazioni e la scalabilità.
Generatore dello schema dello spazio di lavoro
Genera lo schema GraphQL e include:Factory:
Costruttori specializzati per generare costrutti correlati a GraphQL.- La fabbrica type.factory traduce i metadati del campo in tipi GraphQL utilizzando
TypeMapperService. - La fabbrica type-definition.factory crea oggetti di input o output GraphQL derivati da
objectMetadata.
Tipi GraphQL
Include enumerazioni, input, oggetti e scalari e funge da base per la costruzione dello schema.Interfacce e Definizioni di Oggetti
Contiene i progetti per le entità GraphQL e include tipi predefiniti e personalizzati comeMONEY o URL.
Servizi
Contiene il servizio responsabile dell’associazione di FieldMetadataType al relativo scalare GraphQL o ai modificatori di query.Archiviazione
Include la classeTypeDefinitionsStorage che contiene definizioni di tipo riutilizzabili, evitando la duplicazione di tipi GraphQL.
Generatore di resolver dello spazio di lavoro
Crea funzioni di risolutore per interrogare e modificare lo schema GraphQL. Ogni factory in questa directory è responsabile della produzione di un tipo di resolver distinto, comeFindManyResolverFactory, progettato per un’applicazione adattabile su varie tabelle.