C# (.NET) के लिए GraphQL: GraphQL.NET लाइब्रेरी की पूरी गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

C# (.NET) GraphQL लाइब्रेरी — GraphQL.NET



GraphQL एक API के लिए क्वेरी भाषा है, जो क्लाइंट को केवल वही डेटा मांगने की अनुमति देती है जिसकी उन्हें वास्तव में आवश्यकता होती है। .NET इकोसिस्टम में, सबसे लोकप्रिय कार्यान्वयनों में से एक GraphQL.NET लाइब्रेरी है (जिसे graphql-dotnet के नाम से भी जाना जाता है)। यह C# (.NET) प्लेटफॉर्म पर लचीले, टाइप किए गए और कुशल API बनाने के लिए शक्तिशाली उपकरण प्रदान करती है।



इस लेख में, हम विस्तार से देखेंगे कि GraphQL.NET का उपयोग कैसे करें, प्रमुख अवधारणाओं को समझेंगे और व्यावहारिक कोड उदाहरण प्रस्तुत करेंगे।



GraphQL.NET क्या है?



GraphQL.NET एक ओपन-सोर्स लाइब्रेरी है जो .NET प्लेटफॉर्म के लिए GraphQL विनिर्देश को लागू करती है। यह .NET Core और .NET Framework दोनों का समर्थन करती है। मुख्य विशेषताएं:



  • C# में सख्ती से टाइप की गई स्कीमा बनाना।
  • क्वेरी (Query), म्यूटेशन (Mutation) और सब्सक्रिप्शन (Subscription) का समर्थन।
  • अंतर्निहित मान्यता और क्वेरी निष्पादन।
  • लोकप्रिय वेब फ्रेमवर्क (ASP.NET Core, Nancy और अन्य) के साथ एकीकरण।
  • WebSockets (SignalR) के माध्यम से सब्सक्रिप्शन का समर्थन।


स्थापना और कॉन्फ़िगरेशन



आरंभ करने के लिए, NuGet के माध्यम से पैकेज स्थापित करें:



dotnet add package GraphQLdotnet add package GraphQL.SystemTextJson  // JSON सीरियलाइज़ेशन के लिए


यदि आप ASP.NET Core का उपयोग कर रहे हैं, तो अतिरिक्त रूप से स्थापित करें:



dotnet add package GraphQL.Server.Transports.AspNetCoredotnet add package GraphQL.Server.Ui.Playground  // परीक्षण के लिए अंतर्निहित UI


पहली स्कीमा बनाना



GraphQL एक स्कीमा के आसपास बनाया गया है, जो डेटा प्रकारों और उपलब्ध संचालन को परिभाषित करता है। आइए एक सरल उदाहरण देखें — पुस्तकों के बारे में जानकारी प्राप्त करने के लिए API।



चरण 1. डेटा मॉडल परिभाषित करें:



public class Book{    public string Id { get; set; }    public string Title { get; set; }    public string Author { get; set; }    public int Pages { get; set; }}


चरण 2. GraphQL प्रकार बनाएं:



public class BookType : ObjectGraphType<Book>{    public BookType()    {        Field(x => x.Id).Description("पुस्तक का पहचानकर्ता");        Field(x => x.Title).Description("पुस्तक का शीर्षक");        Field(x => x.Author).Description("लेखक");        Field(x => x.Pages).Description("पृष्ठों की संख्या");    }}


चरण 3. रूट क्वेरी (Query) परिभाषित करें:



public class BookQuery : ObjectGraphType{    public BookQuery(IDataStore dataStore)    {        Field<BookType>("book")            .Arguments(new QueryArguments(new QueryArgument<StringGraphType> { Name = "id" }))            .Resolve(context => dataStore.GetBookById(context.GetArgument<string>("id")));

Field<ListGraphType<BookType>>("books") .Resolve(context => dataStore.GetAllBooks()); }}


चरण 4. स्कीमा को इकट्ठा करें:



public class BookSchema : Schema{    public BookSchema(IServiceProvider provider) : base(provider)    {        Query = provider.GetRequiredService<BookQuery>();    }}


ASP.NET Core के साथ एकीकरण



Program.cs (या Startup.cs) में सेवाओं को पंजीकृत करें:



builder.Services.AddGraphQL(b => b    .AddSystemTextJson()    .AddSchema<BookSchema>()    .AddGraphTypes(typeof(BookType).Assembly));

builder.Services.AddScoped<IDataStore, InMemoryDataStore>();


Middleware जोड़ें:



app.UseGraphQL<BookSchema>();  // डिफ़ॉल्ट एंडपॉइंट /graphqlapp.UseGraphQLPlayground();    // परीक्षण के लिए UI (वैकल्पिक)


क्वेरी निष्पादित करना



अब आप

अनुशंसाएँ