GraphQL1 min read

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

Warning

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.

TypeScript
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}
Hint

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:

TypeScript
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:

TypeScript
1const schema = await gqlSchemaFactory.create(
2  [RecipesResolver, AuthorsResolver, PostsResolvers],
3  [DurationScalar, DateScalar],
4);

Nihoyat, opsiyalar obyektini ham uzatishingiz mumkin:

TypeScript
1const schema = await gqlSchemaFactory.create([RecipesResolver], {
2  skipCheck: true,
3  orphanedTypes: [],
4});
  • skipCheck: schema validatsiyasini e'tiborsiz qoldirish; boolean, default false
  • orphanedTypes: 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.