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

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

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

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

परिचय: क्यों GraphQL और C# एक आदर्श जोड़ी हैं

\n

आधुनिक वेब डेवलपमेंट में लचीले और उच्च-प्रदर्शन वाले API की आवश्यकता होती है। REST API, अपनी लोकप्रियता के बावजूद, अक्सर over-fetching (अनावश्यक डेटा प्राप्त करना) और under-fetching (पूरी जानकारी प्राप्त करने के लिए कई अनुरोधों की आवश्यकता) से ग्रस्त होता है। GraphQL इन समस्याओं को हल करता है, जिससे क्लाइंट एक ही अनुरोध में केवल वही डेटा मांग सकता है जिसकी उसे आवश्यकता है।

\n

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

\n

यह सामग्री किसके लिए है: उन .NET डेवलपर्स के लिए जो GraphQL सीखना चाहते हैं, और उनके लिए जो REST के विकल्प की तलाश कर रहे हैं। C# और ASP.NET Core का बुनियादी ज्ञान उपयोगी होगा, लेकिन अनिवार्य नहीं है।

\n\n

1. प्रोजेक्ट सेटअप और Hot Chocolate की स्थापना

\n

ASP.NET Core प्रोजेक्ट बनाना

\n

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

\n
dotnet new web -n GraphQLDemo\ncd GraphQLDemo
\n

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

\n
dotnet add package HotChocolate.AspNetCore\ndotnet add package HotChocolate.AspNetCore.Playground
\n

HotChocolate.AspNetCore पैकेज GraphQL अनुरोधों को संसाधित करने के लिए middleware जोड़ता है, और HotChocolate.AspNetCore.Playground परीक्षण के लिए एक अंतर्निहित IDE (GraphQL Playground) प्रदान करता है।

\n\n

Startup कॉन्फ़िगरेशन

\n

Program.cs (या .NET 5 और उससे नीचे के लिए Startup.cs) फ़ाइल को संपादित करें। बुनियादी कॉन्फ़िगरेशन जोड़ें:

\n
var builder = WebApplication.CreateBuilder(args);\n\n// GraphQL सेवाएँ जोड़ें\nbuilder.Services\n    .AddGraphQLServer()\n    .AddQueryType<Query>()\n    .AddMutationType<Mutation>(); // बाद में जोड़ेंगे\n\nvar app = builder.Build();\n\n// Middleware जोड़ें\napp.UseRouting();\napp.MapGraphQL(); // एंडपॉइंट /graphql\napp.MapGraphQLPlayground(); // Playground /playground पर उपलब्ध\n\napp.Run();
\n

ध्यान दें: Query और Mutation वे क्लास हैं जिन्हें हम आगे बनाएंगे। अभी केवल Query को रखें।

\n\n

2. डेटा मॉडल और पहली क्वेरी (Query) बनाना

\n

Book मॉडल

\n

एक सरल पुस्तक मॉडल बनाएँ। Models/Book.cs फ़ाइल जोड़ें:

\n
namespace GraphQLDemo.Models;\n\npublic class Book\n{\n    public int Id { get; set; }\n    public string Title { get; set; } = string.Empty;\n    public string Author { get; set; } = string.Empty;\n    public int Year { get; set; }\n    public decimal Price { get; set; }\n}
\n\n

Query क्लास

\n

अब Query क्लास बनाएँ, जिसमें डेटा प्राप्त करने के तरीके होंगे। GraphQL/Query.cs फ़ाइल जोड़ें:

\n
using GraphQLDemo.Models;\n\nnamespace GraphQLDemo.GraphQL;\n\npublic class Query\n{\n    // अस्थायी डेटा स्टोरेज (वास्तविक प्रोजेक्ट में - डेटाबेस)\n    private static readonly List<Book> Books = new()\n    {\n        new Book { Id = 1, Title = "वॉर एंड पीस", Author = "लियो टॉल्स्टॉय", Year = 1869, Price = 29.99m },\n        new Book { Id = 2, Title = "क्राइम एंड पनिशमेंट", Author = "फ्योडोर दोस्तोयेव्स्की", Year = 1866, Price = 24.99m },\n        new Book { Id = 3, Title = "द मास्टर एंड मार्गारीटा", Author = "मिखाइल बुल्गाकोव", Year = 1967, Price = 19.99m }\n    };\n\n    // क्वेरी: सभी पुस्तकें प्राप्त करें\n    public IQueryable<Book> GetBooks() => Books.AsQueryable();\n\n    // क्वेरी: ID द्वारा पुस्तक प्राप्त करें\n    public Book? GetBookById(int id) => Books.FirstOrDefault(b => b.Id == id);\n}
\n

डेटा लौटाने वाले तरीकों को resolver कहा जाता है। Hot Chocolate स्वचालित रूप से

ब्लॉग

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