Язык программирования 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>