API Controllers এবং Routing

Microsoft Technologies - এএসপি ডট নেট এমভিসি (ASP.Net MVC) এপিআই তৈরি করা (Creating APIs) |
269
269

ASP.Net MVC-তে API Controllers এবং Routing RESTful Web API তৈরি এবং পরিচালনার একটি গুরুত্বপূর্ণ অংশ। API Controller ডেটা বা রিসোর্স এক্সপোজ করে, এবং Routing নিশ্চিত করে যে এই API-তে সঠিক URL-এর মাধ্যমে অ্যাক্সেস পাওয়া যায়।


API Controllers

API Controller ASP.Net MVC-তে এমন একটি বিশেষ ধরনের Controller যা সাধারণত JSON বা XML ফরম্যাটে ডেটা রিটার্ন করে। এগুলো Web API-এর জন্য ব্যবহৃত হয় এবং ডেটা প্রক্রিয়াকরণ ও এক্সপোজ করতে সাহায্য করে।

API Controller তৈরি করা

API Controller তৈরি করতে Controller ক্লাসটি ApiController ক্লাস থেকে ইনহেরিট করতে হবে।

উদাহরণ: একটি সাধারণ API Controller

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

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

    // GET: api/Students
    [HttpGet]
    public IActionResult GetAllStudents()
    {
        var students = _context.Students.ToList();
        return Ok(students);
    }

    // GET: api/Students/5
    [HttpGet("{id}")]
    public IActionResult GetStudentById(int id)
    {
        var student = _context.Students.Find(id);
        if (student == null)
        {
            return NotFound();
        }
        return Ok(student);
    }

    // POST: api/Students
    [HttpPost]
    public IActionResult CreateStudent([FromBody] Student student)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }

        _context.Students.Add(student);
        _context.SaveChanges();
        return CreatedAtAction(nameof(GetStudentById), new { id = student.Id }, student);
    }

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

        _context.Students.Update(student);
        _context.SaveChanges();
        return NoContent();
    }

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

        _context.Students.Remove(student);
        _context.SaveChanges();
        return NoContent();
    }
}

Routing

Routing নিশ্চিত করে যে API-এর নির্দিষ্ট URL ডেটার সাথে সম্পর্কিত হয়। API Controllers এর ক্ষেত্রে Routing কনফিগার করতে Attribute Routing বেশি ব্যবহৃত হয়। এটি প্রতিটি অ্যাকশন মেথডের জন্য একটি নির্দিষ্ট URL বা Route নির্ধারণ করতে দেয়।

Attribute Routing

Attribute Routing API Controller-এ নির্ধারিত অ্যাকশন মেথডে সরাসরি Route অ্যাট্রিবিউট ব্যবহার করে।

উদাহরণ: Routing সংজ্ঞায়িত করা

[Route("api/[controller]")]
[ApiController]
public class ProductsController : ControllerBase
{
    [HttpGet]
    public IActionResult GetAllProducts()
    {
        // GET: api/Products
    }

    [HttpGet("{id}")]
    public IActionResult GetProductById(int id)
    {
        // GET: api/Products/5
    }

    [HttpPost]
    public IActionResult CreateProduct([FromBody] Product product)
    {
        // POST: api/Products
    }
}
  • [Route("api/[controller]")]: এখানে [controller] টোকেন ProductsController এর Products অংশকে URL-এ রূপান্তরিত করে।
  • [HttpGet("{id}")]: নির্দিষ্ট id সহ URL এর জন্য অ্যাকশন মেথড নির্ধারণ করে।

Custom Routes

Custom Routes ব্যবহার করে API Controller-এ নির্দিষ্ট নামকরণের কনভেনশন যুক্ত করা যায়।

উদাহরণ: Custom Routing

[Route("api/v1/products")]
[ApiController]
public class ProductsController : ControllerBase
{
    [HttpGet("list")]
    public IActionResult GetProducts()
    {
        // GET: api/v1/products/list
    }

    [HttpGet("details/{id}")]
    public IActionResult GetProductDetails(int id)
    {
        // GET: api/v1/products/details/5
    }
}

Default Route কনফিগারেশন

ASP.Net MVC-তে Routing কনফিগারেশন Startup.cs ফাইলে MapControllers() ব্যবহার করে করা হয়।

উদাহরণ: Routing Middleware

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    app.UseRouting();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers();
    });
}

Routing Best Practices

  • সংক্ষিপ্ত URL ব্যবহার করুন: URL ছোট এবং বোধগম্য হওয়া উচিত।
  • Versioning ব্যবহার করুন: API-এর বিভিন্ন সংস্করণের জন্য Route-এ v1, v2 ইত্যাদি যোগ করুন।
  • Resource-Based Routes: Route-এ ক্রিয়ার পরিবর্তে রিসোর্স নাম অন্তর্ভুক্ত করুন।
    • যেমন: /api/students (ভুল: /api/getstudents)।

API Controllers এবং Routing এর সুবিধা

  • সহজ ডেটা এক্সপোজার: JSON বা XML আকারে ডেটা সহজে রিটার্ন করা যায়।
  • Flexible Routing: Attribute Routing-এর মাধ্যমে ডাইনামিক এবং কাস্টম URL তৈরি করা যায়।
  • RESTful API: RESTful নীতিমালা অনুসারে ক্লিন এবং কার্যকর API ডিজাইন করা যায়।
  • Versioning Support: API-এর ভিন্ন সংস্করণ তৈরি ও পরিচালনা করা সহজ।

সারমর্ম

ASP.Net MVC-তে API Controllers এবং Routing ওয়েব API তৈরি এবং পরিচালনার একটি গুরুত্বপূর্ণ অংশ। API Controller ডেটা প্রসেসিং এবং রিসোর্স এক্সপোজ করতে সহায়ক, এবং Routing নির্দিষ্ট URL-এর মাধ্যমে API অ্যাক্সেস নিশ্চিত করে। Attribute Routing এবং Middleware-এর মাধ্যমে API Routing আরও কার্যকর এবং ডেভেলপারদের জন্য সহজ হয়ে ওঠে।

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

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

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

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