परिचय: C# पर REST API — यह आसान है
\nREST API (Representational State Transfer) वेब सेवाएँ बनाने के लिए एक आर्किटेक्चरल शैली है, जिसका उपयोग आज लगभग हर आधुनिक एप्लिकेशन में किया जाता है। यदि आप C# में बैकएंड लिखना जल्दी सीखना चाहते हैं, तो ASP.NET Core शुरुआत करने के लिए सबसे अच्छा विकल्प है। इस लेख में हम 30 मिनट में कार्य सूची (Todo List) प्रबंधित करने के लिए एक पूर्ण REST API बनाएंगे। आप सीखेंगे कि प्रोजेक्ट कैसे सेट करें, कंट्रोलर कैसे लिखें, डेटाबेस कैसे कनेक्ट करें और Swagger के माध्यम से API का परीक्षण कैसे करें।
\nतैयार हैं? चलिए शुरू करते हैं!
\n\nचरण 1: प्रोजेक्ट बनाना और वातावरण सेटअप करना
\nसबसे पहले हमें इंस्टॉल किया हुआ .NET SDK (संस्करण 6.0 या नया) चाहिए। इसे Microsoft की आधिकारिक वेबसाइट से डाउनलोड किया जा सकता है। इंस्टॉलेशन के बाद टर्मिनल या कमांड प्रॉम्प्ट खोलें और एक नया प्रोजेक्ट बनाएं:
\ndotnet new webapi -n TodoApi\ncd TodoApi\nयह कमांड पूर्व-स्थापित Swagger के साथ एक वेब-API टेम्पलेट बनाएगा। प्रोजेक्ट को Visual Studio Code या किसी अन्य IDE में खोलें। प्रोजेक्ट संरचना में पहले से ही Controllers, Models फ़ोल्डर और Program.cs फ़ाइल शामिल है।
अब डेटाबेस के साथ काम करने के लिए Entity Framework Core का समर्थन जोड़ें। आवश्यक पैकेज इंस्टॉल करें:
\ndotnet add package Microsoft.EntityFrameworkCore.InMemory\ndotnet add package Microsoft.EntityFrameworkCore.Design\nहम सरलता के लिए InMemory-डेटाबेस का उपयोग कर रहे हैं — डेटा रैम में संग्रहीत होगा। प्रोडक्शन के लिए आप इसे SQL Server या PostgreSQL से बदल सकते हैं।
\n\nचरण 2: डेटा मॉडल और DB कॉन्टेक्स्ट बनाना
\nएक मॉडल TodoItem बनाएं। Models फ़ोल्डर में TodoItem.cs फ़ाइल बनाएं:
namespace TodoApi.Models;\n\npublic class TodoItem\n{\n public long Id { get; set; }\n public string? Title { get; set; }\n public bool IsComplete { get; set; }\n}\nअब डेटाबेस कॉन्टेक्स्ट बनाएं। Data फ़ोल्डर में (यदि नहीं है तो बनाएं) TodoContext.cs फ़ाइल जोड़ें:
using Microsoft.EntityFrameworkCore;\nusing TodoApi.Models;\n\nnamespace TodoApi.Data;\n\npublic class TodoContext : DbContext\n{\n public TodoContext(DbContextOptions<TodoContext> options) : base(options) { }\n public DbSet<TodoItem> TodoItems { get; set; }\n}\nProgram.cs में कॉन्टेक्स्ट को रजिस्टर करें:
using Microsoft.EntityFrameworkCore;\nusing TodoApi.Data;\n\nvar builder = WebApplication.CreateBuilder(args);\n\nbuilder.Services.AddDbContext<TodoContext>(opt =>\n opt.UseInMemoryDatabase("TodoList"));\n\nbuilder.Services.AddControllers();\nbuilder.Services.AddEndpointsApiExplorer();\nbuilder.Services.AddSwaggerGen();\n\nvar app = builder.Build();\n\nif (app.Environment.IsDevelopment())\n{\n app.UseSwagger();\n app.UseSwaggerUI();\n}\n\napp.UseHttpsRedirection();\napp.UseAuthorization();\napp.MapControllers();\napp.Run();\n\nचरण 3: CRUD संचालन के साथ कंट्रोलर लिखना
\nकार्यों के साथ काम करने के लिए एक कंट्रोलर बनाएं। Controllers फ़ोल्डर में TodoItemsController.cs फ़ाइल जोड़ें:
using Microsoft.AspNetCore.Mvc;\nusing Microsoft.EntityFrameworkCore;\nusing TodoApi.Data;\nusing TodoApi.Models;\n\nnamespace TodoApi.Controllers;\n\n[Route("api/[controller]")]\n[ApiController]\npublic class TodoItemsController : ControllerBase\n{\n private readonly TodoContext _context;\n\n public TodoItemsController(TodoContext context)\n {\n _context = context;\n }\n\n // GET: api/TodoItems\n [HttpGet]\n public async Task<ActionResult<IEnumerable<TodoItem>>> GetTodoItems()\n {\n return await _context.TodoItems.ToListAsync();\n }\n\n // GET: api/TodoItems/5\n [HttpGet("{id}")]\n public async Task<ActionResult<TodoItem>> GetTodoItem(long id)\n {\n var todoItem = await