ASP.NET Core-এ API versioning এবং Swagger ব্যবহার করে আপনি API-কে বিভিন্ন সংস্করণে মেইনটেইন করতে পারেন এবং সহজে ডকুমেন্টেশন জেনারেট করতে পারেন। Versioning ডেভেলপারদের একই API-এর একাধিক সংস্করণ পরিচালনা করতে দেয়, যা ক্লায়েন্টদের জন্য সুবিধাজনক এবং অ্যাপ্লিকেশন আপগ্রেডের সময় সমস্যা কমায়। Swagger একটি ওপেন সোর্স টুল যা API-এর জন্য ইন্টারেক্টিভ ডকুমেন্টেশন সরবরাহ করে।
API Versioning একটি পদ্ধতি যা ডেভেলপারদের একই API-এর বিভিন্ন সংস্করণ পরিচালনা করতে সহায়তা করে। এটি নিশ্চিত করে যে ক্লায়েন্ট তাদের নির্ধারিত সংস্করণে অ্যাক্সেস পাচ্ছে এবং নতুন সংস্করণের জন্য পরিবর্তন করার প্রয়োজন নেই।
ASP.NET Core-এ API Versioning ব্যবহারের জন্য নিচের NuGet প্যাকেজ ইন্সটল করুন:
dotnet add package Microsoft.AspNetCore.Mvc.Versioning
Startup.cs
ফাইলে API Versioning কনফিগার করুন:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
// API Versioning যোগ করা
services.AddApiVersioning(options =>
{
options.AssumeDefaultVersionWhenUnspecified = true;
options.DefaultApiVersion = new ApiVersion(1, 0);
options.ReportApiVersions = true;
});
}
API Versioning ব্যবহারের জন্য Controller-এ [ApiVersion]
অ্যাট্রিবিউট যুক্ত করুন:
[ApiController]
[Route("api/v{version:apiVersion}/[controller]")]
[ApiVersion("1.0")]
public class ProductsController : ControllerBase
{
[HttpGet]
public IActionResult Get()
{
return Ok(new { Message = "This is version 1.0" });
}
}
নতুন সংস্করণ তৈরি করতে [ApiVersion]
অ্যাট্রিবিউট দিয়ে আলাদা অ্যাকশন বা Controller তৈরি করুন:
[ApiController]
[Route("api/v{version:apiVersion}/[controller]")]
[ApiVersion("2.0")]
public class ProductsV2Controller : ControllerBase
{
[HttpGet]
public IActionResult Get()
{
return Ok(new { Message = "This is version 2.0" });
}
}
Swagger একটি ওপেন সোর্স টুল যা API-এর জন্য ডকুমেন্টেশন জেনারেট করতে এবং ইন্টারঅ্যাকটিভভাবে টেস্ট করতে ব্যবহৃত হয়। এটি ডেভেলপার এবং ক্লায়েন্টদের API এর ফ্লো বুঝতে সাহায্য করে।
Swagger ব্যবহারের জন্য নিচের NuGet প্যাকেজ ইন্সটল করুন:
dotnet add package Swashbuckle.AspNetCore
Startup.cs
ফাইলে Swagger যোগ করুন:
public void ConfigureServices(IServiceCollection services)
{
services.AddControllers();
// Swagger যোগ করা
services.AddSwaggerGen();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
// Swagger Middleware
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
});
app.UseRouting();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllers();
});
}
অ্যাপ রান করার পর ব্রাউজারে https://localhost:<port>/swagger
এ যান। আপনি Swagger UI দেখতে পাবেন, যেখানে API-এর সব এন্ডপয়েন্টের ডকুমেন্টেশন থাকবে এবং সেগুলো টেস্ট করার সুযোগ পাবেন।
Swagger-এ Versioning সাপোর্ট করতে নিচের মতো কনফিগারেশন যোগ করুন:
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" });
c.SwaggerDoc("v2", new OpenApiInfo { Title = "My API", Version = "v2" });
});
Middleware-এ Swagger UI কনফিগার করুন:
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
c.SwaggerEndpoint("/swagger/v2/swagger.json", "My API V2");
});
Controller-এ API Versioning ব্যবহারের জন্য [ApiExplorerSettings]
অ্যাট্রিবিউট যোগ করুন:
[ApiExplorerSettings(GroupName = "v1")]
[ApiController]
[Route("api/v{version:apiVersion}/[controller]")]
[ApiVersion("1.0")]
public class ProductsController : ControllerBase
{
[HttpGet]
public IActionResult Get()
{
return Ok(new { Message = "This is version 1.0" });
}
}
[ApiExplorerSettings(GroupName = "v2")]
[ApiController]
[Route("api/v{version:apiVersion}/[controller]")]
[ApiVersion("2.0")]
public class ProductsV2Controller : ControllerBase
{
[HttpGet]
public IActionResult Get()
{
return Ok(new { Message = "This is version 2.0" });
}
}
API Versioning এবং Swagger ASP.NET Core API ডেভেলপমেন্টকে আরও কার্যকর, স্কেলেবল এবং ব্যবহারকারীবান্ধব করে তোলে। এটি API-এর দীর্ঘমেয়াদী ব্যবস্থাপনার জন্য একটি অপরিহার্য পদ্ধতি।
common.read_more