ASPNET Core Web API プロジェクトで、「OpenAPI サポートを有効にする」にチェックがある状態で作成したプロジェクトには、デフォルトで含まれている Swaggerの、Web画面に バージョンを表示する、サンプルを作りしました。
ソースコードはGitHubで公開しています。
ソースコード構成
ASPNET Core Web API テンプレートから、変更を加えたソースファイル。
ソースコード変更内容を解説
/WebApplication1.csproj
パッケージ バージョンに任意の値を入力。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<Project Sdk="Microsoft.NET.Sdk.Web"> <PropertyGroup> <TargetFramework>net6.0</TargetFramework> <Nullable>enable</Nullable> <ImplicitUsings>enable</ImplicitUsings> <Version>1.0.1</Version> </PropertyGroup> <ItemGroup> <PackageReference Include="Swashbuckle.AspNetCore" Version="6.2.3" /> </ItemGroup> </Project> |
/Program.cs
SwaggerDocに渡す OpenApiInfoの Versionに、パッケージ バージョンの値を渡し、Swaggerの Webページに パッケージ バージョンを表示する。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
using Microsoft.OpenApi.Models; using System.Diagnostics; using System.Reflection; var builder = WebApplication.CreateBuilder(args); // Add services to the container. builder.Services.AddControllers(); // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle builder.Services.AddEndpointsApiExplorer(); //Swagger builder.Services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new OpenApiInfo { Title = Assembly.GetEntryAssembly().GetName().Name, Version = "v" + FileVersionInfo.GetVersionInfo(Assembly.GetExecutingAssembly().Location).ProductVersion }); }); var app = builder.Build(); // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(); } app.UseAuthorization(); app.MapControllers(); app.Run(); |
Visual Studio プロジェクト
今回使った Visual Studio 2022 プロジェクト テンプレートは、ASPNET Core Web API の HTTPS用の構成 無しです。
コメント