REST API তৈরি এবং ব্যবহারের নিয়ম

REST API হলো এমন একটি সফটওয়্যার ইন্টারফেস যা ক্লায়েন্ট এবং সার্ভারের মধ্যে যোগাযোগ সহজ করে তোলে। REST API সাধারণত HTTP প্রোটোকল ব্যবহার করে এবং ডেটা ফরম্যাট হিসেবে JSON ব্যবহার করে। ASP.NET Core দিয়ে REST API তৈরি করা সহজ, এবং এটি সিস্টেমের বিভিন্ন অংশের মধ্যে যোগাযোগ করতে ব্যবহৃত হয়।

REST API তৈরির ধাপসমূহ

১. নতুন ASP.NET Core API প্রজেক্ট তৈরি

১. Visual Studio ওপেন করুন। ২. File > New > Project এ যান। ৩. ASP.NET Core Web Application নির্বাচন করুন এবং Next ক্লিক করুন। ৪. প্রজেক্টের জন্য নাম লিখুন এবং Create ক্লিক করুন। ৫. API টেমপ্লেট নির্বাচন করুন এবং Create ক্লিক করুন।


২. API এর জন্য Model তৈরি করা

ধরা যাক, আমরা একটি Student মডেল তৈরি করব যেখানে শিক্ষার্থীর তথ্য থাকবে।

Models ফোল্ডারে Student.cs নামে একটি ক্লাস তৈরি করুন এবং নিচের কোড লিখুন:

public class Student
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
}

৩. DbContext তৈরি করা

ASP.NET Core এ Entity Framework Core ব্যবহার করে ডাটাবেসে ডেটা সংরক্ষণ করা যায়। DbContext সেটআপ করতে প্রথমে Entity Framework Core প্যাকেজটি ইনস্টল করুন:

Entity Framework ইনস্টল করা

Package Manager Console এ নিচের কমান্ডটি রান করুন:

Install-Package Microsoft.EntityFrameworkCore.SqlServer
Install-Package Microsoft.EntityFrameworkCore.Tools

Models ফোল্ডারে ApplicationDbContext.cs নামে একটি ক্লাস তৈরি করুন এবং নিচের কোডটি লিখুন:

using Microsoft.EntityFrameworkCore;

public class ApplicationDbContext : DbContext
{
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options) : base(options)
    {
    }

    public DbSet<Student> Students { get; set; }
}

৪. DbContext রেজিস্টার করা এবং কানেকশন স্ট্রিং সেটআপ

appsettings.json ফাইলে ডাটাবেস কানেকশন স্ট্রিং যোগ করুন:

"ConnectionStrings": {
    "DefaultConnection": "Server=your_server_name;Database=your_database_name;User Id=your_username;Password=your_password;"
}

Startup.cs ফাইলে DbContext রেজিস্টার করুন:

using Microsoft.EntityFrameworkCore;

public void ConfigureServices(IServiceCollection services)
{
    services.AddControllers();
    services.AddDbContext<ApplicationDbContext>(options =>
        options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
}

৫. মাইগ্রেশন তৈরি এবং ডাটাবেস আপডেট করা

Package Manager Console এ নিচের কমান্ডগুলো রান করুন:

Add-Migration InitialCreate
Update-Database

এতে Students টেবিল ডাটাবেসে তৈরি হবে।


৬. API কন্ট্রোলার তৈরি করা

API কন্ট্রোলার CRUD অপারেশন পরিচালনা করবে। Controllers ফোল্ডারে StudentsController.cs নামে একটি নতুন কন্ট্রোলার তৈরি করুন এবং নিচের কোডটি লিখুন:

using Microsoft.AspNetCore.Mvc;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

[Route("api/[controller]")]
[ApiController]
public class StudentsController : ControllerBase
{
    private readonly ApplicationDbContext _context;

    public StudentsController(ApplicationDbContext context)
    {
        _context = context;
    }

    // GET: api/Students
    [HttpGet]
    public async Task<ActionResult<IEnumerable<Student>>> GetStudents()
    {
        return await _context.Students.ToListAsync();
    }

    // GET: api/Students/5
    [HttpGet("{id}")]
    public async Task<ActionResult<Student>> GetStudent(int id)
    {
        var student = await _context.Students.FindAsync(id);

        if (student == null)
        {
            return NotFound();
        }

        return student;
    }

    // POST: api/Students
    [HttpPost]
    public async Task<ActionResult<Student>> PostStudent(Student student)
    {
        _context.Students.Add(student);
        await _context.SaveChangesAsync();

        return CreatedAtAction("GetStudent", new { id = student.Id }, student);
    }

    // PUT: api/Students/5
    [HttpPut("{id}")]
    public async Task<IActionResult> PutStudent(int id, Student student)
    {
        if (id != student.Id)
        {
            return BadRequest();
        }

        _context.Entry(student).State = EntityState.Modified;

        try
        {
            await _context.SaveChangesAsync();
        }
        catch (DbUpdateConcurrencyException)
        {
            if (!_context.Students.Any(e => e.Id == id))
            {
                return NotFound();
            }
            else
            {
                throw;
            }
        }

        return NoContent();
    }

    // DELETE: api/Students/5
    [HttpDelete("{id}")]
    public async Task<IActionResult> DeleteStudent(int id)
    {
        var student = await _context.Students.FindAsync(id);
        if (student == null)
        {
            return NotFound();
        }

        _context.Students.Remove(student);
        await _context.SaveChangesAsync();

        return NoContent();
    }
}

ব্যাখ্যা

  • [HttpGet]: ডেটা রিড করে।
  • [HttpPost]: নতুন ডেটা তৈরি করে।
  • [HttpPut]: বিদ্যমান ডেটা আপডেট করে।
  • [HttpDelete]: বিদ্যমান ডেটা মুছে ফেলে।

৭. API পরীক্ষা করা

  1. Visual Studio তে Start (বা F5) ক্লিক করে প্রজেক্ট রান করুন।
  2. Swagger ব্যবহার করে API এর প্রতিটি এন্ডপয়েন্ট পরীক্ষা করা যাবে, যেমন /api/Students
  3. Postman ব্যবহার করেও API এর প্রতিটি এন্ডপয়েন্ট পরীক্ষা করা যায়।

REST API ব্যবহারের নিয়ম

  • GET (Retrieve): /api/Students এবং /api/Students/{id} এন্ডপয়েন্টে ব্যবহার করা হয় ডেটা রিড করতে।
  • POST (Create): /api/Students এন্ডপয়েন্টে ব্যবহার করা হয় নতুন ডেটা তৈরি করতে।
  • PUT (Update): /api/Students/{id} এন্ডপয়েন্টে বিদ্যমান ডেটা আপডেট করতে ব্যবহার করা হয়।
  • DELETE (Delete): /api/Students/{id} এন্ডপয়েন্টে বিদ্যমান ডেটা মুছে ফেলা হয়।

REST API তৈরির সুবিধা

  1. অ্যাপ্লিকেশনের কম্প্যাটিবিলিটি বৃদ্ধি পায়: REST API ব্যবহার করে বিভিন্ন অ্যাপ্লিকেশন এবং ক্লায়েন্ট সহজে যোগাযোগ করতে পারে।
  2. সাধারণ এবং সংক্ষিপ্ত প্রোটোকল: HTTP প্রোটোকল ব্যবহার করায় ডেটা আদান-প্রদানে কম জটিলতা থাকে।
  3. স্ট্যাটলেস এবং ক্যাশযোগ্য: REST API স্ট্যাটলেস হওয়ায় প্রতি অনুরোধের জন্য নতুন রেসপন্স তৈরি হয়। ক্যাশ করার সুবিধাও থাকে।
  4. JSON ফরম্যাটে ডেটা: REST API JSON ফরম্যাটে ডেটা প্রদান করে, যা হালকা এবং সহজেই ব্যবহৃত হয়।

ASP.NET Core দিয়ে REST API তৈরি করে ডায়নামিক এবং স্কেলেবল ওয়েব এপ্লিকেশন তৈরি করা যায়, যা ডেটাবেস এবং ক্লায়েন্টের মধ্যে সংযোগ রক্ষা করে।

Content added By

আরও দেখুন...

Promotion