Attribute Routing

Microsoft Technologies - ডট নেট কোর (Dot.Net Core) রাউটিং এবং Middleware (Routing and Middleware) |
200
200

Attribute Routing হল ASP.NET Core-এ রাউটিং কনফিগারেশনের একটি শক্তিশালী এবং নমনীয় পদ্ধতি। এই পদ্ধতিতে, রাউটিং তথ্য সরাসরি কন্ট্রোলার এবং অ্যাকশন মেথডগুলির উপর অ্যাট্রিবিউট আকারে নির্ধারণ করা হয়, যার ফলে রাউটিং কনফিগারেশন আরও পরিষ্কার এবং সহজে পরিচালনাযোগ্য হয়।


Attribute Routing কী?

Attribute Routing এর মাধ্যমে আপনি কন্ট্রোলার এবং কন্ট্রোলারের মেথডগুলিতে রাউটিং কনফিগারেশন নির্দিষ্ট করতে পারেন। এর ফলে, URL প্যাটার্ন সরাসরি অ্যাকশন মেথডের উপরে সংজ্ঞায়িত করা যায়। এটি সাধারণত Route অ্যাট্রিবিউট ব্যবহার করে কনফিগার করা হয়।

এই পদ্ধতির প্রধান সুবিধা হলো এটি রাউটিংকে কন্ট্রোলারের মেথডের কাছে এনে দেয়, যার ফলে কোডের পাঠযোগ্যতা এবং রক্ষণাবেক্ষণ আরও সহজ হয়ে যায়।


Attribute Routing কিভাবে কাজ করে?

ASP.NET Core-এ Attribute Routing কাজ করার জন্য, [Route] অ্যাট্রিবিউট ব্যবহার করা হয়। এই অ্যাট্রিবিউট কন্ট্রোলার বা অ্যাকশন মেথডের উপরে সংযোজিত হয় এবং এর মাধ্যমে রাউটিং প্যাটার্ন নির্ধারণ করা হয়।

উদাহরণ: কিভাবে Attribute Routing কাজ করে

using Microsoft.AspNetCore.Mvc;

namespace MyApp.Controllers
{
    [Route("api/[controller]")]
    public class ProductsController : Controller
    {
        // GET api/products
        [HttpGet]
        public IActionResult GetAllProducts()
        {
            return Ok(new { message = "Getting all products" });
        }

        // GET api/products/5
        [HttpGet("{id}")]
        public IActionResult GetProductById(int id)
        {
            return Ok(new { message = $"Getting product with ID {id}" });
        }

        // POST api/products
        [HttpPost]
        public IActionResult CreateProduct([FromBody] Product product)
        {
            return Ok(new { message = "Product created" });
        }
    }
}

এখানে, [Route("api/[controller]")]) অ্যাট্রিবিউটটি ProductsController কন্ট্রোলারের জন্য রাউট নির্ধারণ করে, যেখানে [controller] কে কন্ট্রোলারের নাম (যেমন Products) দ্বারা প্রতিস্থাপন করা হয়। এর পরে, [HttpGet], [HttpGet("{id}")], এবং [HttpPost] অ্যাট্রিবিউটগুলি অ্যাকশন মেথডগুলির জন্য নির্দিষ্ট HTTP পদ্ধতিগুলি চিহ্নিত করে।


Attribute Routing-এর সুবিধা

  • সুনির্দিষ্ট রাউটিং প্যাটার্ন: Attribute Routing কনফিগারেশনের জন্য অ্যাট্রিবিউট সরাসরি কন্ট্রোলার এবং অ্যাকশন মেথডগুলিতে প্রয়োগ করা হয়, যা আরও পরিষ্কার এবং সহজবোধ্য রাউটিং প্রদান করে।
  • Dynamic URL গঠন: URL প্যাটার্নগুলি অ্যাকশন মেথডের সাথে সম্পর্কিত থাকে, তাই আপনি সহজেই প্রতিটি অ্যাকশন মেথডের জন্য অনন্য রাউট তৈরি করতে পারেন।
  • Reusable Route Templates: রাউটের অংশে পরিবর্তনশীল প্যারামিটার অন্তর্ভুক্ত করা যায়, যেমন {id} বা {name}। এটি ডাইনামিক রাউট তৈরি করতে সাহায্য করে।
  • Route Constraints: আপনি URL প্যারামিটারগুলির জন্য কন্ডিশন বা কনস্ট্রেইন্ট যোগ করতে পারেন, যেমন সংখ্যার জন্য {id:int}

Attribute Routing এর উদাহরণ

এখানে একটি Attribute Routing উদাহরণ দেওয়া হলো যেখানে কন্ট্রোলার এবং অ্যাকশন মেথডগুলির রাউটিং নির্দিষ্ট করা হয়েছে:

using Microsoft.AspNetCore.Mvc;

namespace MyApp.Controllers
{
    // Controller level route
    [Route("api/[controller]")]
    public class ProductsController : Controller
    {
        // GET api/products
        [HttpGet]
        public IActionResult GetAllProducts()
        {
            return Ok("Getting all products");
        }

        // GET api/products/5
        [HttpGet("{id:int}")]
        public IActionResult GetProduct(int id)
        {
            return Ok($"Getting product with ID {id}");
        }

        // POST api/products
        [HttpPost]
        public IActionResult CreateProduct([FromBody] Product product)
        {
            return Ok("Product created successfully");
        }

        // PUT api/products/5
        [HttpPut("{id}")]
        public IActionResult UpdateProduct(int id, [FromBody] Product product)
        {
            return Ok($"Product with ID {id} updated");
        }

        // DELETE api/products/5
        [HttpDelete("{id}")]
        public IActionResult DeleteProduct(int id)
        {
            return Ok($"Product with ID {id} deleted");
        }
    }
}

এখানে, প্রতিটি মেথডে HttpGet, HttpPost, HttpPut, এবং HttpDelete অ্যাট্রিবিউট ব্যবহার করা হয়েছে, যা তাদের সম্পর্কিত HTTP পদ্ধতি নির্দেশ করে। এছাড়া, {id:int} কনস্ট্রেইন্ট ব্যবহার করা হয়েছে, যা নিশ্চিত করে যে id প্যারামিটারটি একটি পূর্ণসংখ্যা হবে।


রাউটিং কনস্ট্রেইনট (Route Constraints)

Attribute Routing-এ কনস্ট্রেইনট ব্যবহার করলে URL প্যারামিটারগুলির ধরন এবং মান নির্ধারণ করা যেতে পারে। যেমন:

  • {id:int}: এটি নিশ্চিত করে যে id একটি পূর্ণসংখ্যা (integer) হবে।
  • {name:length(10)}: এটি নিশ্চিত করে যে name প্যারামিটারটির দৈর্ঘ্য ১০-এর কম হবে।

এটি কন্ট্রোলার এবং অ্যাকশন মেথডগুলির মধ্যে সুনির্দিষ্ট রাউটিং কনফিগারেশন প্রদান করে।


সারাংশ

Attribute Routing হল ASP.NET Core এ একটি শক্তিশালী রাউটিং পদ্ধতি, যা URL প্যাটার্ন সরাসরি কন্ট্রোলার এবং অ্যাকশন মেথডের উপর অ্যাট্রিবিউট আকারে নির্ধারণ করতে সাহায্য করে। এর মাধ্যমে আপনি সহজে এবং পরিষ্কারভাবে কনফিগারেশন করতে পারেন, এবং ডাইনামিক, কাস্টমাইজড রাউট তৈরি করতে সক্ষম হন। Attribute Routing এর প্রধান সুবিধা হলো কোডের পাঠযোগ্যতা বাড়ানো এবং রাউটিং ম্যানেজমেন্ট সহজতর করা।

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

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

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

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