ASP.Net এ API Routing এবং HTTP Methods মূলত Web API এর জন্য ব্যবহৃত হয়। API Routing হল সেই প্রক্রিয়া যার মাধ্যমে একটি HTTP রিকোয়েস্ট নির্দিষ্ট কন্ট্রোলার ও অ্যাকশন মেথডে রুট করে এবং HTTP Methods (GET, POST, PUT, DELETE, ইত্যাদি) ব্যবহারকারী এবং সার্ভারের মধ্যে তথ্যের আদান-প্রদান পরিচালনা করে। এখানে, আমরা ASP.Net Web API এবং ASP.Net Core API তে API Routing এবং HTTP Methods এর ব্যাখ্যা প্রদান করব।
API Routing হল সেই প্রক্রিয়া যার মাধ্যমে রিকোয়েস্ট URL কে কন্ট্রোলার এবং অ্যাকশন মেথডের সাথে মেলানো হয়। ASP.Net এর মধ্যে Routing প্রক্রিয়া কন্ট্রোলারের মেথডে রিকোয়েস্ট পাঠানোর জন্য ব্যবহার করা হয়, এবং API এ সাধারণত এই রাউটিং কনফিগার করা হয় Route Attributes অথবা Route Templates এর মাধ্যমে।
ASP.Net Core API তে Attribute Routing এবং Convention-based Routing উভয়ই সমর্থিত।
ASP.Net Core API তে Attribute Routing ব্যবহার করা হয়, যেখানে রাউটিং কনফিগারেশন কন্ট্রোলারের অ্যাকশন মেথডের উপরই নির্ভর করে। এটি URL প্যাটার্ন নির্দিষ্ট করার জন্য সহজ এবং পরিষ্কার উপায়।
[Route("api/[controller]")]
[ApiController]
public class ProductsController : ControllerBase
{
// GET api/products
[HttpGet]
public IActionResult GetProducts()
{
return Ok(new { message = "Getting all products" });
}
// GET api/products/5
[HttpGet("{id}")]
public IActionResult GetProduct(int id)
{
return Ok(new { message = $"Getting product with ID: {id}" });
}
// POST api/products
[HttpPost]
public IActionResult CreateProduct([FromBody] Product product)
{
return CreatedAtAction(nameof(GetProduct), new { id = product.Id }, product);
}
// PUT api/products/5
[HttpPut("{id}")]
public IActionResult UpdateProduct(int id, [FromBody] Product product)
{
return Ok(new { message = $"Updating product with ID: {id}" });
}
// DELETE api/products/5
[HttpDelete("{id}")]
public IActionResult DeleteProduct(int id)
{
return Ok(new { message = $"Deleting product with ID: {id}" });
}
}
এখানে, Route("api/[controller]")
এর মাধ্যমে ProductsController কন্ট্রোলারের সমস্ত রিকোয়েস্ট /api/products
রুটে যাবে। এবং প্রতিটি HTTP Method (GET, POST, PUT, DELETE) এর জন্য আলাদা রাউট নির্দিষ্ট করা হয়েছে।
Convention-based Routing ASP.Net MVC/Web API তে ব্যবহৃত হয়, যেখানে রাউটিং কনফিগারেশন RouteConfig.cs
ফাইলে করা হয়। এখানে রাউটিং নিয়ম অনুযায়ী URL এবং কন্ট্রোলার একে অপরের সাথে মেলানো হয়।
public class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Conventional Routing
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
এখানে, MapHttpRoute
পদ্ধতি দিয়ে রাউটিং কনফিগার করা হয়েছে। URL এর মধ্যে {controller}
এবং {id}
এর মাধ্যমে কন্ট্রোলার এবং আইডি নির্দিষ্ট করা হয়েছে।
HTTP Methods হল HTTP প্রটোকলের বিভিন্ন কমান্ড, যেগুলি সার্ভার এবং ক্লায়েন্টের মধ্যে তথ্য আদান-প্রদান নিয়ন্ত্রণ করে। Web API তে সাধারণত নিচের HTTP Methods গুলি ব্যবহৃত হয়:
GET হল সবচেয়ে সাধারণ HTTP মেথড, যেটি শুধুমাত্র ডেটা রিট্রিভ (আবশ্যক ডেটা পাওয়া) করার জন্য ব্যবহৃত হয়। এটি সার্ভার থেকে তথ্য পেতে ক্লায়েন্টের রিকোয়েস্ট পাঠায়।
[HttpGet]
public IActionResult GetProducts()
{
var products = productService.GetAllProducts();
return Ok(products); // 200 OK response with product list
}
POST মেথড ব্যবহার করা হয় নতুন তথ্য বা রিসোর্স সার্ভারে পাঠানোর জন্য। এটি সাধারণত ডেটা সাবমিট করার জন্য ব্যবহৃত হয়, যেমন ফর্ম সাবমিট বা নতুন রেকর্ড তৈরি।
[HttpPost]
public IActionResult CreateProduct([FromBody] Product product)
{
var createdProduct = productService.AddProduct(product);
return CreatedAtAction(nameof(GetProduct), new { id = createdProduct.Id }, createdProduct);
}
এখানে, ক্লায়েন্ট একটি POST রিকোয়েস্ট পাঠাচ্ছে যা সার্ভারে নতুন প্রোডাক্ট তৈরি করবে।
PUT মেথড ব্যবহার করা হয় একটি রিসোর্স সম্পূর্ণভাবে আপডেট (replace) করতে। এটি সাধারণত ফুল-রেকর্ড বা প্রোডাক্ট আপডেট করার জন্য ব্যবহৃত হয়।
[HttpPut("{id}")]
public IActionResult UpdateProduct(int id, [FromBody] Product product)
{
var updatedProduct = productService.UpdateProduct(id, product);
return Ok(updatedProduct); // 200 OK with updated product
}
DELETE মেথড ব্যবহার করা হয় রিসোর্স বা ডেটা মুছে ফেলার জন্য। এটি একটি রিকোয়েস্ট পাঠায় যাতে সার্ভার নির্দিষ্ট একটি রিসোর্স (যেমন, ডেটাবেজের রেকর্ড) মুছে ফেলে।
[HttpDelete("{id}")]
public IActionResult DeleteProduct(int id)
{
productService.DeleteProduct(id);
return NoContent(); // 204 No Content, indicating that the resource has been deleted
}
এগুলো ব্যবহার করে আপনি API রিকোয়েস্ট ঠিকমত রুট করতে এবং HTTP Methods দ্বারা ডেটা পরিচালনা করতে পারবেন।
Read more