Чтение онлайн

на главную - закладки

Жанры

Язык программирования C#9 и платформа .NET5
Шрифт:

// app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json",

// "AutoLot.Api v1"));

// Инициализировать базу данных.

if (Configuration.GetValue<bool>("RebuildDataBase"))

{

SampleDataInitializer.ClearAndReseedDatabase(context);

}

}

// Включить промежуточное ПО для обслуживания сгенерированного

//
файла Swagger как конечной точки JSON.

app.UseSwagger;

// Включить промежуточное ПО для обслуживания пользовательского

// интерфейса Swagger (HTML, JS, CSS и т.д.), указывая конечную

// точку JSON для Swagger

app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json",

"AutoLot Service
v1"); });

...

}

В предыдущем коде используется

Swagger(app.UseSwagger)
и пользовательский интерфейс Swagger(
app.useSwaggerUI
). В нем также конфигурируется конечная точка для файла
swagger.json
.

Добавление файла XML-документации

Инфраструктура .NET Core способна генерировать файл XML-документации для вашего проекта, исследуя методы на предмет наличия комментариев с тремя символами прямой косой черты (

///
). Чтобы включить такую функциональность в Visual Studio, щелкните правой кнопкой мыши на имени проекта
AutoLot.Api
и в контекстном меню выберите пункт Properties (Свойства). В открывшемся диалоговом окне Properties (Свойства) перейдите на вкладку Build (Сборка), отметьте флажок XML documentation file (Файл XML-документации) и укажите в качестве имени файла
AutoLot.Api.xml
. Кроме того, введите 1591 в текстовом поле Suppress warnings (Подавлять предупреждения), как показано на рис. 30.3.

Те же настройки можно вводить прямо в файле проекта. Ниже показан раздел

PropertyGroup
, который понадобится добавить:

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

<DocumentationFile>AutoLot.Api.xml</DocumentationFile>

<NoWarn>1701;1702;1591;</NoWarn>

</PropertyGroup>

Настройка

NoWarn
с указанием
1591
отключает выдачу предупреждений компилятором для методов, которые не имеют XML-комментариев.

На заметку! Предупреждения 1701 и 1702 являются пережитками ранних дней классической платформы .NET, которые обнажают компиляторы .NET Core. Чтобы взглянуть на процесс в действии, модифицируйте

метод
Get
класса
ValuesController
следующим образом:

/// <summary>

/// This is an example Get method returning JSON

/// </summary>

/// <remarks>This is one of several examples for returning JSON:

/// <pre>

/// [

/// "value1",

/// "value2"

/// ]

/// </pre>

/// </remarks>

/// <returns>List of strings</returns>

[HttpGet]

public IActionResult Get

{

return Ok(new string[] { "value1", "value2" });

}

Когда вы скомпилируете проект, в корневом каталоге проекта появится новый файл по имени

AutoLot.Api.xml
. Открыв его, вы увидите только что добавленные комментарии:

<?xml version="1.0"?>

<doc>

<assembly>

<name>AutoLot.Api</name>

</assembly>

<members>

<member name="M:AutoLot.Api.Controllers.ValuesController.Get">

<summary>

This is an example Get method returning JSON

</summary>

<remarks>This is one of several examples for returning JSON:

<pre>

[

"value1",

"value2"

]

</pre>

</remarks>

<returns>List of strings</returns> </member>

</members>

</doc>

На заметку! Если вы вводите три символа прямой косой черты перед определением класса или метода в Visual Studio, то среда создает начальную заглушку для XML-комментариев.

Далее необходимо объединить XML-комментарии со сгенерированным файлом

swagger.json
.

Добавление XML-комментариев в процесс генерации Swagger

Сгенерированные XML-комментарии должны быть добавлены в процесс генерации

swagger.json
. Начните с добавления следующих операторов
using
в файл класса
Startup.cs
:

using System.IO;

Поделиться:
Популярные книги

Ведьма

Резник Юлия
Любовные романы:
современные любовные романы
эро литература
8.54
рейтинг книги
Ведьма

Комбинация

Ланцов Михаил Алексеевич
2. Сын Петра
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Комбинация

Неудержимый. Книга XI

Боярский Андрей
11. Неудержимый
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Неудержимый. Книга XI

Большая игра

Ланцов Михаил Алексеевич
4. Иван Московский
Фантастика:
альтернативная история
5.00
рейтинг книги
Большая игра

Хозяйка Междуречья

Алеева Елена
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Хозяйка Междуречья

Возвышение Меркурия. Книга 3

Кронос Александр
3. Меркурий
Фантастика:
попаданцы
аниме
5.00
рейтинг книги
Возвышение Меркурия. Книга 3

Восьмое правило дворянина

Герда Александр
8. Истинный дворянин
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Восьмое правило дворянина

Идеальный мир для Лекаря 6

Сапфир Олег
6. Лекарь
Фантастика:
фэнтези
юмористическая фантастика
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 6

Жена моего брата

Рам Янка
1. Черкасовы-Ольховские
Любовные романы:
современные любовные романы
6.25
рейтинг книги
Жена моего брата

Генерал Империи

Ланцов Михаил Алексеевич
4. Безумный Макс
Фантастика:
альтернативная история
5.62
рейтинг книги
Генерал Империи

Купеческая дочь замуж не желает

Шах Ольга
Фантастика:
фэнтези
6.89
рейтинг книги
Купеческая дочь замуж не желает

Академия

Сай Ярослав
2. Медорфенов
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Академия

Светлая ведьма для Темного ректора

Дари Адриана
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Светлая ведьма для Темного ректора

Хроники разрушителя миров. Книга 8

Ермоленков Алексей
8. Хроники разрушителя миров
Фантастика:
фэнтези
5.00
рейтинг книги
Хроники разрушителя миров. Книга 8