C# के साथ GraphQL API: व्यावहारिक चरण-दर-चरण ट्यूटोरियल

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

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

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

C# के साथ GraphQL API: व्यावहारिक चरण-दर-चरण ट्यूटोरियल



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



GraphQL क्या है और इसे C# के साथ क्यों उपयोग करें?



GraphQL Facebook द्वारा विकसित API के लिए एक क्वेरी भाषा है। मुख्य लाभ:

  • क्वेरी में लचीलापन — क्लाइंट स्वयं तय करता है कि कौन से फ़ील्ड प्राप्त करने हैं
  • एकल प्रवेश बिंदु — सभी क्वेरी के लिए एक एंडपॉइंट
  • मजबूत टाइपिंग — सभी डेटा प्रकार सख्ती से परिभाषित होते हैं
  • over-fetching और under-fetching का अभाव — आपको ठीक वही मिलता है जो आपने अनुरोध किया था

.NET इकोसिस्टम में, GraphQL को लागू करने के लिए सबसे अच्छी लाइब्रेरी Hot Chocolate है। यह क्वेरी, म्यूटेशन और सब्सक्रिप्शन सहित GraphQL विनिर्देश की सभी क्षमताओं का समर्थन करती है।



प्रोजेक्ट तैयार करना और निर्भरताएँ स्थापित करना



चलिए एक नया ASP.NET Core प्रोजेक्ट बनाकर शुरू करते हैं। टर्मिनल या कमांड प्रॉम्प्ट खोलें और निम्नलिखित चलाएँ:

dotnet new webapi -n GraphQLDemocd GraphQLDemo


अब Hot Chocolate पैकेज स्थापित करें:

dotnet add package HotChocolate.AspNetCoredotnet add package HotChocolate.AspNetCore.Playground


अपने API के लिए एक डेटा मॉडल बनाएँ। मान लें कि हम पुस्तकों और लेखकों के साथ काम करेंगे। एक Models फ़ोल्डर बनाएँ और उसमें क्लास जोड़ें:



// Models/Author.cspublic class Author{    public int Id { get; set; }    public string Name { get; set; }    public ICollection<Book> Books { get; set; }}

// Models/Book.cspublic class Book{ public int Id { get; set; } public string Title { get; set; } public int AuthorId { get; set; } public Author Author { get; set; }}


GraphQL स्कीमा और रिज़ॉल्वर बनाना



GraphQL में, मुख्य घटक प्रकार, क्वेरी (Query) और म्यूटेशन (Mutation) हैं। एक GraphQL फ़ोल्डर बनाएँ और उसमें फ़ाइलें जोड़ें:



// GraphQL/Query.cspublic class Query{    public IQueryable<Book> GetBooks([Service] ApplicationDbContext context)    {        return context.Books.Include(b => b.Author);    }

public Book GetBook(int id, [Service] ApplicationDbContext context) { return context.Books.Include(b => b.Author).FirstOrDefault(b => b.Id == id); }

public IQueryable<Author> GetAuthors([Service] ApplicationDbContext context) { return context.Authors.Include(a => a.Books); }}

// GraphQL/Mutation.cspublic class Mutation{ public async Task<Book> AddBook(string title, int authorId, [Service] ApplicationDbContext context) { var book = new Book { Title = title, AuthorId = authorId }; context.Books.Add(book); await context.SaveChangesAsync(); return book; }

public async Task<Author> AddAuthor(string name, [Service] ApplicationDbContext context) { var author = new Author { Name = name }; context.Authors.Add(author); await context.SaveChangesAsync(); return author; }}


अब इन क्लास को Program.cs में रजिस्टर करें:



// Program.csvar builder = WebApplication.CreateBuilder(args);

builder.Services .AddDbContext<ApplicationDbContext>(options => options.U

ब्लॉग

पुस्तक अनुशंसाएँ