Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
ASP.NET Core предоставляет пакет анализаторов MVC, предназначенный для использования с проектами веб-API. Анализаторы работают с контроллерами, аннотированными с
Пакет анализаторов уведомляет вас о любых действиях контроллера, которые:
- Возвращает необъявленный код состояния.
- Возвращает результат успешного выполнения, который не был объявлен.
- Документирует код состояния, который не возвращается.
- Включает явную проверку модели.
Ссылка на пакет анализатора
Анализаторы включены в пакет SDK для .NET. Чтобы включить анализатор в проекте, включите IncludeOpenAPIAnalyzers свойство в файл проекта:
<PropertyGroup>
<IncludeOpenAPIAnalyzers>true</IncludeOpenAPIAnalyzers>
</PropertyGroup>
Анализаторы соглашений для веб-API
Документы OpenAPI содержат коды состояния и типы ответов, которые могут возвращать действие. В ASP.NET Core MVC атрибуты, такие как ProducesResponseTypeAttribute и ProducesAttribute используются для документирования действия. Документация веб-API ASP.NET Core с помощью Swagger / OpenAPI более подробно рассматривает документирование вашего веб-API.
Один из анализаторов пакета проверяет контроллеры, аннотированные с помощью ApiControllerAttribute, и идентифицирует действия, которые не полностью документируют свои ответы. Рассмотрим следующий пример:
// GET api/contacts/{guid}
[HttpGet("{id}", Name = "GetById")]
[ProducesResponseType(typeof(Contact), StatusCodes.Status200OK)]
public IActionResult Get(string id)
{
var contact = _contacts.Get(id);
if (contact == null)
{
return NotFound();
}
return Ok(contact);
}
Предыдущее действие документирует тип возвращаемого значения успешности HTTP 200, но не документирует код состояния сбоя HTTP 404. Анализатор сообщает недостающую документацию по коду состояния HTTP 404 в виде предупреждения. Предоставляется возможность устранить проблему.
Для анализаторов требуется Microsoft.NET.Sdk.Web
Анализаторы не работают с проектами библиотеки или проектами, ссылающимися Sdk="Microsoft.NET.Sdk"на нее.