Swashbuckle.AspNetCore v5.0.0 이후 처리 옵션의 유형이 변경되었습니다.

Swagger의 이름이 OpenAPI 규격(OAS)과 다르다는 것도 마이크로소프트 이름 공간에서 준비한 영향일 수 있다


만약 마이크로소프트의 공식 참고를 추구한다면 정보는 업데이트될 것이다
Swashbuckle 및 ASP.NET Core의 개요
  • https://docs.microsoft.com/ja-jp/aspnet/core/tutorials/getting-started-with-swashbuckle?view=aspnetcore-3.1&tabs=visual-studio-code
  • Swashbuckle.AspNetCore v5.0.0 이후 SwaggerDoc에서 처리되는 옵션 유형이 변경될 수 있음을 주의하십시오


    Swashbuckle.5.0.0 미만


    Startup.cs
    // 前略
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddSwaggerGen(c =>
        {
    	c.SwaggerDoc("v1", new Info
    	{
    	    Version = "v1",
    	    Title = "Example API",
    	    Description = "A simple example ASP.NET Core Web API",
    	    TermsOfService = "https://example.com/term",
    	    Contact = new Contact
    	    {
    		Name = "Hoge Fuga",
    		Email = string.Empty,
    		Url = "https://example.com/hoge"
    	    },
    	    License = new License
    	    {
    		Name = "Use under LICX",
    		Url = "https://example.com/license"
    	    }
    	});
        });
    }
    // 後略
    

    Swashbuckle.AspNetCore version 5.0.0 이상


    Startup.cs
    using Microsoft.OpenApi.Models;    // 追加で必要
    // 中略
    public void ConfigureServices(IServiceCollection services)
    {
        services.AddSwaggerGen(c =>
        {
    	c.SwaggerDoc("v1", new OpenApiInfo
    	{
    	    Version = "v1",
    	    Title = "Example API",
    	    Description = "A simple example ASP.NET Core Web API",
    	    TermsOfService = new Uri("https://example.com/term"),
    	    Contact = new OpenApiContact
    	    {
    		Name = "Hoge Fuga",
    		Email = string.Empty,
    		Url = new Uri("https://example.com/hoge")
    	    },
    	    License = new OpenApiLicense
    	    {
    		Name = "Use under LICX",
    		Url = new Uri("https://example.com/license")
    	    }
    	});
        });
    }
    // 後略
    

    참고 자료

  • Why Swashbuckle.aspnet.core.swagger not being recognized - stackoverflow
  • https://stackoverflow.com/questions/53550096/why-swashbuckle-aspnet-core-swagger-not-being-recognized
  • cannot convert from 'Microsoft.OpenApi.Models.OpenApiInfo' to 'Swashbuckle.AspNetCore.Swagger.Info'
  • https://stackoverflow.com/questions/57080588/cannot-convert-from-microsoft-openapi-models-openapiinfo-to-swashbuckle-aspne
  • Get started with Swashbuckle and ASP .NET Core
  • https://github.com/dotnet/AspNetCore.Docs/tree/master/aspnetcore/tutorials/web-api-help-pages-using-swagger/samples/3.0/TodoApi.Swashbuckle
  • 좋은 웹페이지 즐겨찾기