EF ব্যবহার করে RESTful API তৈরি

Microsoft Technologies - এন্টিটি ফ্রেমওয়র্ক (Entity Framework) Entity Framework এর সাথে ASP.NET Core Integration |
187
187

RESTful API (Representational State Transfer) হল একটি ওয়েব সার্ভিস যা HTTP প্রোটোকলের মাধ্যমে ক্লায়েন্ট এবং সার্ভারের মধ্যে যোগাযোগের জন্য ব্যবহৃত হয়। Entity Framework (EF) Core ব্যবহার করে RESTful API তৈরি করলে, আপনি সহজেই ডেটাবেসের সাথে যোগাযোগ করতে পারেন এবং ক্লায়েন্টের জন্য ডেটা প্রদান করতে পারেন। EF Core একটি শক্তিশালী ORM (Object-Relational Mapping) টুল, যা ডেটাবেস অপারেশনগুলোকে সহজ এবং প্রাকটিক্যাল করে তোলে।

এখানে আমরা ASP.NET Core Web API ব্যবহার করে কিভাবে Entity Framework দিয়ে একটি RESTful API তৈরি করা যায়, তা দেখব।


1. প্রজেক্ট সেটআপ করা

প্রথমে, একটি নতুন ASP.NET Core Web API প্রজেক্ট তৈরি করুন। আপনি Visual Studio বা .NET CLI ব্যবহার করতে পারেন।

.NET CLI দিয়ে প্রজেক্ট তৈরি করা:

dotnet new webapi -n MyApi
cd MyApi

এটি একটি নতুন Web API প্রজেক্ট তৈরি করবে।


2. Entity Framework Core ইন্সটল করা

আপনার প্রজেক্টে EF Core যুক্ত করতে NuGet প্যাকেজ ইন্সটল করুন। আমরা সাধারণত SQL Server ব্যবহার করে API তৈরি করব, তবে আপনি আপনার প্রজেক্টের জন্য অন্য কোন ডেটাবেসও ব্যবহার করতে পারেন।

NuGet প্যাকেজ ইন্সটল:

dotnet add package Microsoft.EntityFrameworkCore.SqlServer
dotnet add package Microsoft.EntityFrameworkCore.Tools

এছাড়াও, ডাটাবেস মাইগ্রেশন এবং টেস্টিং এর জন্য InMemory ডেটাবেস ব্যবহার করতে পারেন।


3. ডেটাবেস মডেল তৈরি করা

এখন একটি ডেটাবেস মডেল তৈরি করি, যেটি আমাদের API এর মাধ্যমে ডেটা সরবরাহ করবে। উদাহরণস্বরূপ, একটি Product মডেল তৈরি করা যাক।

Product.cs:

public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}

4. DbContext তৈরি করা

EF Core এর জন্য একটি DbContext ক্লাস তৈরি করা হবে, যা আমাদের ডেটাবেসের সাথে যোগাযোগ করবে।

ApplicationDbContext.cs:

using Microsoft.EntityFrameworkCore;

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

    public DbSet<Product> Products { get; set; }
}

এখানে, DbSet<Product> একটি DbSet যা আমাদের Products টেবিলের প্রতিনিধিত্ব করবে।


5. Startup.cs (বা Program.cs) কনফিগারেশন

এখন, আমাদের DbContext এবং ডাটাবেস সংযোগ কনফিগার করতে হবে। Startup.cs (বা .NET 6+ এ Program.cs) ফাইলে ডাটাবেস কনফিগারেশন করা হবে।

Program.cs:

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddControllers();

// Configure DbContext
builder.Services.AddDbContext<ApplicationDbContext>(options =>
    options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));

var app = builder.Build();

// Configure the HTTP request pipeline.
app.UseHttpsRedirection();

app.MapControllers();

app.Run();

এখানে, আমরা ApplicationDbContext কে SQL Server কনফিগার করেছি এবং ConnectionString ব্যবহার করেছি যা appsettings.json ফাইলে সংজ্ঞায়িত থাকবে।


6. appsettings.json কনফিগারেশন

ডাটাবেসের সংযোগের জন্য appsettings.json ফাইলটি কনফিগার করতে হবে।

appsettings.json:

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=MyApiDb;Trusted_Connection=True;"
  },
  // other configurations
}

এখানে, আমরা একটি localdb ডাটাবেস ব্যবহার করছি, তবে আপনি আপনার ডাটাবেসের তথ্য এখানে দিতে পারেন।


7. Controller তৈরি করা

API এর জন্য একটি Controller তৈরি করতে হবে, যা HTTP রিকোয়েস্ট গ্রহণ করবে এবং ডেটাবেস থেকে ডেটা রিটার্ন করবে।

ProductsController.cs:

using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;

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

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

    // GET: api/products
    [HttpGet]
    public async Task<ActionResult<IEnumerable<Product>>> GetProducts()
    {
        return await _context.Products.ToListAsync();
    }

    // GET: api/products/5
    [HttpGet("{id}")]
    public async Task<ActionResult<Product>> GetProduct(int id)
    {
        var product = await _context.Products.FindAsync(id);

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

        return product;
    }

    // POST: api/products
    [HttpPost]
    public async Task<ActionResult<Product>> PostProduct(Product product)
    {
        _context.Products.Add(product);
        await _context.SaveChangesAsync();

        return CreatedAtAction(nameof(GetProduct), new { id = product.Id }, product);
    }

    // PUT: api/products/5
    [HttpPut("{id}")]
    public async Task<IActionResult> PutProduct(int id, Product product)
    {
        if (id != product.Id)
        {
            return BadRequest();
        }

        _context.Entry(product).State = EntityState.Modified;
        await _context.SaveChangesAsync();

        return NoContent();
    }

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

        _context.Products.Remove(product);
        await _context.SaveChangesAsync();

        return NoContent();
    }
}

এই ProductsController ক্লাসে পাঁচটি মূল HTTP মেথডের জন্য কন্ট্রোলার তৈরি করা হয়েছে:

  1. GET /api/products - সমস্ত প্রোডাক্টের তালিকা ফেরত দেয়।
  2. GET /api/products/{id} - একটি নির্দিষ্ট প্রোডাক্ট ফেরত দেয়।
  3. POST /api/products - নতুন প্রোডাক্ট ডেটাবেসে যোগ করে।
  4. PUT /api/products/{id} - একটি প্রোডাক্ট আপডেট করে।
  5. DELETE /api/products/{id} - একটি প্রোডাক্ট মুছে ফেলে।

8. ডেটাবেস মাইগ্রেশন এবং টেস্টিং

এখন আমাদের ডেটাবেস মাইগ্রেশন এবং টেস্টিং করতে হবে। প্রথমে, ডাটাবেস তৈরি করতে মাইগ্রেশন চালাতে হবে।

dotnet ef migrations add InitialCreate
dotnet ef database update

এখন আপনি আপনার API টেস্ট করতে পারেন Postman বা অন্য কোন API টেস্টিং টুল ব্যবহার করে।


9. Conclusion

এইভাবে, আপনি Entity Framework Core ব্যবহার করে একটি RESTful API তৈরি করতে পারেন। EF Core এর মাধ্যমে ডেটাবেস অপারেশনগুলো সহজ হয়ে যায় এবং API-র মধ্যে ডেটা ট্রান্সফার অত্যন্ত কার্যকর হয়। RESTful API এর মাধ্যমে আপনি ক্লায়েন্ট অ্যাপ্লিকেশনের সাথে সিস্টেমের ডেটা সঠিকভাবে শেয়ার করতে পারবেন এবং এতে CRUD অপারেশনগুলো খুবই সহজে ইমপ্লিমেন্ট করা যাবে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion