Язык программирования C#9 и платформа .NET5 - Троелсен Эндрю
Пользовательский интерфейс Swagger базируется на веб-интерфейсе и позволяет интерактивным образом исследовать конечные точки приложения, а также тестировать их (как делалось ранее в этой главе). Его можно расширить, добавляя документацию в сгенерированный файл
swagger.jsonОбновление обращений к Swagger в классе Startup
Стандартный шаблон проекта API добавляет код для генерирования файла
swagger.jsonConfigureService()Startupservices.AddSwaggerGen(c =>{ c.SwaggerDoc("v1", new OpenApiInfo { Title = "AutoLot.Api", Version = "v1" });});Первое изменение стандартного кода предусматривает добавление метаданных к
OpenApiInfoAddSwaggerGen()services.AddSwaggerGen(c =>{ c.SwaggerDoc("v1", new OpenApiInfo {<b> Title = "AutoLot Service",</b> Version = "v1",<b> Description = "Service to support the AutoLot dealer site",</b><b> License = new OpenApiLicense</b><b> {</b><b> Name = "Skimedic Inc",</b><b> Url = new Uri("http://www.skimedic.com")</b><b> }</b> });});Следующий шаг связан с переносом вызовов
UseSwagger()UseSwaggerUI()Configure()"AutoLot.Api vl""AutoLot Service vl"public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ApplicationDbContext context){ if (env.IsDevelopment()) { // Если среда разработки, тогда отображать отладочную информацию. app.UseDeveloperExceptionPage();<b> // Первоначальный код:</b><b> // app.UseSwagger();</b><b> // app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json",</b><b> // "AutoLot.Api v1"));</b> // Инициализировать базу данных. if (Configuration.GetValue<bool>("RebuildDataBase")) { SampleDataInitializer.ClearAndReseedDatabase(context); } } // Включить промежуточное ПО для обслуживания сгенерированного // файла Swagger как конечной точки JSON.<b> app.UseSwagger();</b> // Включить промежуточное ПО для обслуживания пользовательского // интерфейса Swagger (HTML, JS, CSS и т.д.), указывая конечную // точку JSON для Swagger<b> app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json",</b> "AutoLot Service v1"); });
...}В предыдущем коде используется
Swagger(app.UseSwagger())app.useSwaggerUI()swagger.jsonДобавление файла XML-документации
Инфраструктура .NET Core способна генерировать файл XML-документации для вашего проекта, исследуя методы на предмет наличия комментариев с тремя символами прямой косой черты (
///AutoLot.ApiAutoLot.Api.xml
Те же настройки можно вводить прямо в файле проекта. Ниже показан раздел
PropertyGroup<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> <DocumentationFile>AutoLot.Api.xml</DocumentationFile> <NoWarn>1701;1702;1591;</NoWarn></PropertyGroup>