NestJS GraphQL सेटअप
GraphQL API उपलब्ध कराने के लिए NestJS को कॉन्फ़िगर करें और कोड-प्रथम तथा स्कीमा-प्रथम दृष्टिकोणों में से चुनें।
NestJS GraphQL सेटअप, CoddyKit पर NestJS एंटरप्राइज़ बैकएंड API का एक निःशुल्क पाठ है। यह 3 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह NestJS एंटरप्राइज़ बैकएंड API सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। NestJS एंटरप्राइज़ बैकएंड API पाठ्यक्रम में कुल 3 पाठ शामिल हैं।
GraphQL सेटअप में आपका स्वागत है
नमस्कार! इस पाठ में आप सीखेंगे कि अपने NestJS एप्लिकेशन में GraphQL को कैसे एकीकृत किया जाता है। हम आवश्यक सेटअप चरणों को समझेंगे और दो मुख्य तरीकों का अन्वेषण करेंगे:
- स्कीमा-प्रथम: GraphQL स्कीमा परिभाषा भाषा (SDL) का उपयोग करके अपना एपीआई परिभाषित करना।
- कोड-प्रथम: TypeScript क्लास और डेकोरेटर से सीधे अपना स्कीमा बनाना।
पाठ के अंत तक आप अपने प्रोजेक्ट के लिए सबसे उपयुक्त तरीका चुन सकेंगे और एक बुनियादी GraphQL सर्वर चला सकेंगे!
GraphQL निर्भरताएँ इंस्टॉल करें
कोड लिखने से पहले हमें आवश्यक पैकेज इंस्टॉल करने होंगे। NestJS, Apollo जैसी अंतर्निहित GraphQL लाइब्रेरी के साथ @nestjs/graphql का उपयोग करता है।
अपना टर्मिनल खोलें और आवश्यक पैकेज जोड़ने के लिए यह कमांड चलाएँ:
npm install @nestjs/graphql @nestjs/apollo graphqlgraphql मुख्य GraphQL लाइब्रेरी है, जबकि @nestjs/apollo Apollo सर्वर एकीकरण प्रदान करता है।
GraphQLModule कॉन्फ़िगर करें
NestJS GraphQL का मुख्य भाग GraphQLModule है। आपको इसे अपने रूट मॉड्यूल, जो आमतौर पर AppModule होता है, में इम्पोर्ट करके कॉन्फ़िगर करना होगा। इसका एक बुनियादी सेटअप इस प्रकार है:
import { Module } from '@nestjs/common';
import { GraphQLModule } from '@nestjs/graphql';
import { ApolloDriver, ApolloDriverConfig } from '@nestjs/apollo';
@Module({
imports: [
GraphQLModule.forRoot<ApolloDriverConfig>({
driver: ApolloDriver, // Use Apollo for GraphQL server
}),
],
controllers: [],
providers: [],
})
export class AppModule {}
// main.ts (entry point for NestJS)
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(3000);
console.log('GraphQL server ready on http://localhost:3000/graphql');
}
bootstrap();स्कीमा-प्रथम: SDL से डिज़ाइन करें
स्कीमा-प्रथम तरीके का अर्थ है कि आप पहले Schema Definition Language (SDL) का उपयोग करके अपना GraphQL स्कीमा परिभाषित करते हैं। यह आपके एपीआई का खाका बनाने जैसा है।
- आप अपनी प्रकार-संरचनाएँ, क्वेरी और म्यूटेशन
.graphqlया.gqlफ़ाइल में लिखते हैं। - इसके बाद NestJS आपके एपीआई की संरचना समझने के लिए इस फ़ाइल का उपयोग करता है।
- बाद में आप इन स्कीमा परिभाषाओं को वास्तविक डेटा प्रबंधन तर्क (रिज़ॉल्वर) से जोड़ेंगे।
स्कीमा-प्रथम: प्रकार का बुनियादी उदाहरण
आइए SDL फ़ाइल में एक सरल Author प्रकार परिभाषित करें। यह फ़ाइल अभी किसी कार्यान्वयन विवरण के बिना डेटा संरचना का वर्णन करती है।
// src/graphql.schema.gql
type Author {
id: ID!
firstName: String
lastName: String
}
type Query {
authors: [Author!]!
author(id: ID!): Author
}स्कीमा-प्रथम: स्कीमा को मॉड्यूल से जोड़ें
NestJS को अपनी SDL फ़ाइल की जानकारी देने के लिए आप GraphQLModule को उस फ़ाइल का पथ बताएँगे। इससे NestJS को पता चलता है कि आपकी स्कीमा परिभाषा कहाँ ढूँढ़नी है।
import { Module } from '@nestjs/common';
import { GraphQLModule } from '@nestjs/graphql';
import { ApolloDriver, ApolloDriverConfig } from '@nestjs/apollo';
@Module({
imports: [
GraphQLModule.forRoot<ApolloDriverConfig>({
driver: ApolloDriver,
typePaths: ['./**/*.gql'], // Tells NestJS where to find .gql files
}),
],
controllers: [],
providers: [],
})
export class AppModule {}
// main.ts (entry point for NestJS)
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(3000);
console.log('GraphQL server ready on http://localhost:3000/graphql');
}
bootstrap();कोड-प्रथम: TypeScript का कमाल
कोड-प्रथम तरीका आपके GraphQL स्कीमा को परिभाषित करने के लिए TypeScript डेकोरेटर का उपयोग करता है। SDL लिखने के बजाय आप ऐसी क्लास परिभाषित करते हैं जिन्हें NestJS स्वचालित रूप से GraphQL स्कीमा में बदल देता है।
- आप अपनी TypeScript क्लास पर
@ObjectType()और@Field()जैसे डेकोरेटर का उपयोग करते हैं। - यह तरीका मज़बूत प्रकार-सुरक्षा और बेहतरीन आईडीई सहायता देता है।
- इससे दोहराव कम होता है, क्योंकि आपके TypeScript प्रकार सीधे आपके GraphQL स्कीमा को परिभाषित करते हैं।
कोड-प्रथम: ऑब्जेक्ट प्रकार बनाएँ
कोड-प्रथम तरीके से उसी Author प्रकार को परिभाषित करने का तरीका यहाँ दिया गया है। @ObjectType और @Field डेकोरेटर के उपयोग पर ध्यान दें।
// src/authors/models/author.model.ts
import { Field, ID, ObjectType } from '@nestjs/graphql';
@ObjectType()
export class Author {
@Field(type => ID) // Explicitly define GraphQL type
id: number;
@Field({ nullable: true }) // Field can be null
firstName?: string;
@Field({ nullable: true })
lastName?: string;
}कोड-प्रथम: स्कीमा स्वचालित रूप से बनाएँ
कोड-प्रथम तरीके में GraphQLModule आपके प्रोजेक्ट में @ObjectType(), @InputType() आदि से सजाई गई क्लास को स्कैन करके स्कीमा स्वचालित रूप से बनाता है।
आपको बस उसे यह बताना होता है कि बनाई गई स्कीमा फ़ाइल कहाँ सहेजनी है (यह वैकल्पिक है, लेकिन निरीक्षण के लिए उपयोगी है)।
import { Module } from '@nestjs/common';
import { GraphQLModule } from '@nestjs/graphql';
import { ApolloDriver, ApolloDriverConfig } from '@nestjs/apollo';
@Module({
imports: [
GraphQLModule.forRoot<ApolloDriverConfig>({
driver: ApolloDriver,
autoSchemaFile: 'src/schema.gql', // Path to save the generated schema
sortSchema: true, // Optional: keeps schema consistent
}),
],
controllers: [],
providers: [],
})
export class AppModule {}
// main.ts (entry point for NestJS)
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await app.listen(3000);
console.log('GraphQL server ready on http://localhost:3000/graphql');
}
bootstrap();स्कीमा-प्रथम बनाम कोड-प्रथम
दोनों तरीके मान्य हैं और आपका चुनाव अक्सर टीम की पसंद तथा प्रोजेक्ट की आवश्यकताओं पर निर्भर करता है:
- स्कीमा-प्रथम: एपीआई डिज़ाइन में सहयोग के लिए बेहतरीन। स्कीमा ही सत्य का एकमात्र स्रोत होती है, इसलिए फ़्रंटएंड टीमों के लिए एपीआई का उपयोग जल्दी शुरू करना आसान होता है।
- कोड-प्रथम: TypeScript डेवलपर इसकी मज़बूत प्रकार-सुरक्षा, कम संदर्भ-परिवर्तन और स्कीमा-कोड के कम दोहराव के कारण इसे पसंद करते हैं। यह NestJS के लिए अधिक स्वाभाविक लगता है।
NestJS दोनों तरीकों का समर्थन करता है, इसलिए आप अपने लिए सबसे उपयुक्त तरीका चुन सकते हैं!
अपनी समझ जाँचें
आइए NestJS में GraphQL सेटअप करने के बारे में आपके ज्ञान की जाँच करें।
पाठ का सारांश
बहुत अच्छा! आपने NestJS में GraphQL एपीआई सेट अप करने के मूल चरण सीख लिए हैं।
- हमने आवश्यक
@nestjs/graphqlऔर@nestjs/apolloपैकेज इंस्टॉल किए। - आपने देखा कि अपने
AppModuleमेंGraphQLModuleको कैसे एकीकृत और कॉन्फ़िगर किया जाता है। - हमने स्कीमा-प्रथम तरीका (SDL फ़ाइलों का उपयोग) और कोड-प्रथम तरीका (TypeScript डेकोरेटर का उपयोग) दोनों का अन्वेषण किया।
अब आपके पास NestJS में अपनी पसंद का GraphQL सेटअप चुनने और लागू करने की ठोस नींव है!
एआई शिक्षक के साथ TypeScript सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 20
- पाठ
- 76
अक्सर पूछे जाने वाले प्रश्न
क्या “NestJS GraphQL सेटअप” पाठ निःशुल्क है?
हाँ—“NestJS GraphQL सेटअप” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और NestJS एंटरप्राइज़ बैकएंड API पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। NestJS एंटरप्राइज़ बैकएंड API पाठ्यक्रम में कुल 3 पाठ शामिल हैं।
“NestJS GraphQL सेटअप” में मैं क्या सीखूँगा?
GraphQL API उपलब्ध कराने के लिए NestJS को कॉन्फ़िगर करें और कोड-प्रथम तथा स्कीमा-प्रथम दृष्टिकोणों में से चुनें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ NestJS एंटरप्राइज़ बैकएंड API का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या NestJS एंटरप्राइज़ बैकएंड API शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर NestJS एंटरप्राइज़ बैकएंड API शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 3 में से 2वाँ पाठ है।
“NestJS GraphQL सेटअप” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस NestJS एंटरप्राइज़ बैकएंड API पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर NestJS एंटरप्राइज़ बैकएंड API पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- GraphQL की मूल बातें
- NestJS GraphQL सेटअप
- रिज़ॉल्वर और सब्सक्रिप्शन