cDoru / AspNetCoreApiVersioning

API Versioning in ASP.NET Core.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AspNetCoreApiVersioning

API Versioning in ASP.NET Core.

API Versioning

Microsoft Documentation

Nuget Package

Microsoft.AspNetCore.Mvc.Versioning

Startup.cs

public void ConfigureServices(IServiceCollection services)
{
   services.AddMvc();

   services.AddApiVersioning(options =>
   {
       options.ReportApiVersions = true;
       options.AssumeDefaultVersionWhenUnspecified = true;
       options.DefaultApiVersion = new ApiVersion(3, 0);
   });
}

ServiceV1Controller.cs

[ApiController]
[ApiVersion("1.0", Deprecated = true)]
[Route("api/{version:apiVersion}/service")]
public class ServiceV1Controller : ControllerBase
{
   [HttpGet]
   public ActionResult<string> Get()
   {
       return nameof(ServiceV1Controller);
   }
}

ServiceV2Controller.cs

[ApiController]
[ApiVersion("2.0")]
[Route("api/{version:apiVersion}/service")]
public class ServiceV2Controller : ControllerBase
{
   [HttpGet]
   public ActionResult<string> Get()
   {
       return nameof(ServiceV2Controller);
   }
}

ServiceV3Controller.cs

[ApiController]
[ApiVersion("3.0")]
[Route("api/{version:apiVersion}/service")]
public class ServiceV3Controller : ControllerBase
{
   [HttpGet]
   public ActionResult<string> Get()
   {
       return nameof(ServiceV3Controller);
   }
}

URLs

Response Headers

  • api-deprecated-versions: 1.0
  • api-supported-versions: 2.0, 3.0

About

API Versioning in ASP.NET Core.

License:MIT License


Languages

Language:C# 100.0%