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

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

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

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

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



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



GraphQL.NET क्या है?



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



मुख्य विशेषताएं:

  • लचीली स्कीमा परिभाषा — प्रकार, इंटरफ़ेस, यूनियन-प्रकार और एनुम।
  • क्वेरी (Query), म्यूटेशन (Mutation) और सब्सक्रिप्शन (Subscription) के लिए समर्थन।
  • DI-कंटेनरों के साथ एकीकरण (जैसे, Microsoft.Extensions.DependencyInjection)।
  • सर्वर-साइड पर अनुरोधों का मान्यकरण और पार्सिंग।
  • N+1 क्वेरी अनुकूलन के लिए DataLoader समर्थन।
  • परीक्षण और डिबगिंग के लिए उपकरण।


स्थापना और कनेक्शन



स्थापना NuGet पैकेज मैनेजर के माध्यम से की जाती है। कमांड निष्पादित करें:

dotnet add package GraphQLdotnet add package GraphQL.SystemTextJson


ASP.NET Core के लिए, मिडलवेयर पैकेज की भी आवश्यकता होगी:

dotnet add package GraphQL.Server.Transports.AspNetCore


एक सरल GraphQL API बनाना



1. डेटा प्रकार परिभाषित करना



पहले एक डेटा मॉडल और संबंधित GraphQL प्रकार बनाएं:

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

public class BookType : ObjectType<Book>{ protected override void Configure(IObjectTypeDescriptor<Book> descriptor) { descriptor.Field(b => b.Id).Type<NonNullType<IntType>>(); descriptor.Field(b => b.Title).Type<NonNullType<StringType>>(); descriptor.Field(b => b.Author).Type<StringType>(); }}


2. क्वेरी (Query) परिभाषित करना



अब एक Query क्लास बनाएं जो अनुरोधों को संसाधित करेगी:

public class Query{    private readonly List<Book> _books = new()    {        new Book { Id = 1, Title = "1984", Author = "George Orwell" },        new Book { Id = 2, Title = "Brave New World", Author = "Aldous Huxley" }    };

public Book GetBook(int id) { return _books.FirstOrDefault(b => b.Id == id); }

public List<Book> GetBooks() { return _books; }}


फिर इस क्लास को स्कीमा में पंजीकृत करें:

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


3. Startup.cs में कॉन्फ़िगरेशन



ASP.NET Core में सेवाएं और मिडलवेयर जोड़ें:

public void ConfigureServices(IServiceCollection services){    services.AddGraphQL(builder => builder        .AddSchema<BookSchema>()        .AddSystemTextJson());}

public void Configure(IApplicationBuilder app, IWebHostEnvironment env){ app.UseGraphQL<BookSchema>(); app.UseGraphQLPlayground(); // परीक्षण के लिए}


डेटा बदलने के लिए म्यूटेशन (Mutation)



म्यूटेशन के माध्यम से पुस्तकें जोड़ने की क्षमता जोड़ें:

अनुशंसाएँ