API Versioning এবং Documentation (Swagger ব্যবহার)

Microsoft Technologies - এএসপি ডট নেট কোর (ASP.Net Core) Web API তৈরি করা (Building Web APIs) |
223
223

ASP.NET Core-এ API versioning এবং Swagger ব্যবহার করে আপনি API-কে বিভিন্ন সংস্করণে মেইনটেইন করতে পারেন এবং সহজে ডকুমেন্টেশন জেনারেট করতে পারেন। Versioning ডেভেলপারদের একই API-এর একাধিক সংস্করণ পরিচালনা করতে দেয়, যা ক্লায়েন্টদের জন্য সুবিধাজনক এবং অ্যাপ্লিকেশন আপগ্রেডের সময় সমস্যা কমায়। Swagger একটি ওপেন সোর্স টুল যা API-এর জন্য ইন্টারেক্টিভ ডকুমেন্টেশন সরবরাহ করে।


API Versioning

API Versioning কী?

API Versioning একটি পদ্ধতি যা ডেভেলপারদের একই API-এর বিভিন্ন সংস্করণ পরিচালনা করতে সহায়তা করে। এটি নিশ্চিত করে যে ক্লায়েন্ট তাদের নির্ধারিত সংস্করণে অ্যাক্সেস পাচ্ছে এবং নতুন সংস্করণের জন্য পরিবর্তন করার প্রয়োজন নেই।

API Versioning যোগ করার ধাপ

১. NuGet প্যাকেজ ইন্সটল করা

ASP.NET Core-এ API Versioning ব্যবহারের জন্য নিচের NuGet প্যাকেজ ইন্সটল করুন:

dotnet add package Microsoft.AspNetCore.Mvc.Versioning
২. API 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;
    });
}
৩. Controller-এ API Versioning যুক্ত করা

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" });
    }
}

API Documentation (Swagger ব্যবহার)

Swagger কী?

Swagger একটি ওপেন সোর্স টুল যা API-এর জন্য ডকুমেন্টেশন জেনারেট করতে এবং ইন্টারঅ্যাকটিভভাবে টেস্ট করতে ব্যবহৃত হয়। এটি ডেভেলপার এবং ক্লায়েন্টদের API এর ফ্লো বুঝতে সাহায্য করে।

Swagger যোগ করার ধাপ

১. NuGet প্যাকেজ ইন্সটল করা

Swagger ব্যবহারের জন্য নিচের NuGet প্যাকেজ ইন্সটল করুন:

dotnet add package Swashbuckle.AspNetCore
২. Swagger কনফিগার করা

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();
    });
}
৩. Swagger UI পরীক্ষা করা

অ্যাপ রান করার পর ব্রাউজারে https://localhost:<port>/swagger এ যান। আপনি Swagger UI দেখতে পাবেন, যেখানে API-এর সব এন্ডপয়েন্টের ডকুমেন্টেশন থাকবে এবং সেগুলো টেস্ট করার সুযোগ পাবেন।


API Versioning এবং Swagger Integration

Swagger-এ Versioning যোগ করা

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-এ Version অনুযায়ী Swagger ডকুমেন্ট দেখানো

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" });
    }
}

সুবিধা

  • Version Management: API-এর বিভিন্ন সংস্করণ সহজে মেইনটেইন করা যায়।
  • Improved Documentation: Swagger ইন্টারফেস ক্লায়েন্ট এবং ডেভেলপারদের জন্য API বুঝতে সহায়ক।
  • Interactive Testing: Swagger-এর মাধ্যমে এন্ডপয়েন্ট সরাসরি টেস্ট করা যায়।
  • Scalability: Versioning এবং Swagger ব্যবহার করে বড় অ্যাপ্লিকেশন মেইনটেইন করা সহজ।

API Versioning এবং Swagger ASP.NET Core API ডেভেলপমেন্টকে আরও কার্যকর, স্কেলেবল এবং ব্যবহারকারীবান্ধব করে তোলে। এটি API-এর দীর্ঘমেয়াদী ব্যবস্থাপনার জন্য একটি অপরিহার্য পদ্ধতি।

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

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

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

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