SDL generatsiya qilish
GraphQL SDL schemani qo'lda generatsiya qilish uchun (ya'ni ilovani ishga tushirmasdan, bazaga ulamasdan, resolverlarni bog'lamasdan va h.k.), GraphQLSchemaBuilderModuledan foydala
Bu bob faqat code first yondashuviga tegishli.
GraphQL SDL schemani qo'lda generatsiya qilish uchun (ya'ni ilovani ishga tushirmasdan, bazaga ulamasdan, resolverlarni bog'lamasdan va h.k.), GraphQLSchemaBuilderModuledan foydalaning.
1async function generateSchema() {
2 const app = await NestFactory.create(GraphQLSchemaBuilderModule);
3 await app.init();
4
5 const gqlSchemaFactory = app.get(GraphQLSchemaFactory);
6 const schema = await gqlSchemaFactory.create([RecipesResolver]);
7 console.log(printSchema(schema));
8}GraphQLSchemaBuilderModule va GraphQLSchemaFactory@nestjs/graphql paketidan import qilinadi. printSchema funksiyasi graphql paketidan import qilinadi.
Foydalanish
gqlSchemaFactory.create() metodi resolver klasslarining referencelaridan iborat massivni qabul qiladi. Masalan:
1const schema = await gqlSchemaFactory.create([
2 RecipesResolver,
3 AuthorsResolver,
4 PostsResolvers,
5]);U shuningdek ikkinchi ixtiyoriy argument sifatida scalar klasslar massividan iborat argumentni ham qabul qiladi:
1const schema = await gqlSchemaFactory.create(
2 [RecipesResolver, AuthorsResolver, PostsResolvers],
3 [DurationScalar, DateScalar],
4);Nihoyat, opsiyalar obyektini ham uzatishingiz mumkin:
1const schema = await gqlSchemaFactory.create([RecipesResolver], {
2 skipCheck: true,
3 orphanedTypes: [],
4});skipCheck: schema validatsiyasini e'tiborsiz qoldirish;boolean, defaultfalseorphanedTypes: aniq referens qilinmagan (object graphning bir qismi bo'lmagan) klasslar ro'yxati; ular generatsiya qilinadi. Odatda klass e'lon qilingan, lekin graphda boshqa joyda ishlatilmagan bo'lsa, u tashlab yuboriladi. Bu xossa qiymati klass referencelari massivi.