출처: https://qiita.com/alicial/items/f095ef52c5677abc3f7e

액션 별로 버전 관리

Microsoft.AspNetCore.Mvc.Versioning」을 사용한 버전 관리 방법

참고: https://dotnetcoretutorials.com/2017/01/17/api-versioning-asp-net-core/

순서

1. 버전 관리를 하고 싶은 프로젝트에 Microsoft.AspNetCore.Mvc.Versioning 을 추가한다

    Install-Package Microsoft.AspNetCore.Mvc.Versioning

2. Startup.cs 의 ConfigureServices()에 아래를 추가한다

Startup.cs

public void ConfigureServices(IServiceCollection services)
{
 
// ApiVersioning을 추가
 services.AddApiVersioning(options =>
 {
     
// 클라이언트에 Api 버전을 통지
     options.ReportApiVersions =
true;
     
// 이것이 없으면 클라이언트 측에서 에러가 나온다
     options.AssumeDefaultVersionWhenUnspecified =
true;
     
// Api의 default 버전을 1.0으로 설정
     options.DefaultApiVersion =
new ApiVersion(1, 0);
 });

 services.AddControllers();
}

3. Controller의 이름 공간 및 함수에 속성을 추가

HomeController.cs

// 지원하고 있는 버전을 추가
[
ApiVersion("1.0")]
[
ApiVersion("2.0")]
[
Route("v{version:apiVersion}/[controller]")]
public class HomeController : Controller
{
 [
HttpGet]
 
public string Get() => "v1";

 
// Api 버전을 덮어 쓰기
 [
HttpGet, MapToApiVersion("2.0")]
 
public string GetV2() => "v2";
}