ASP .NET Core - Habilitando os Built-in .NET Analyzers
Hoje veremos como habilitar os analisadores embutidos na ASP.NET Core 5.0. |
A partir da versão 2.2 a ASP .NET Core fornece um pacote de analisadores destinados ao uso de projetos Web API que trabalham com controladores anotados com o atributo ApiController construindo convenções para as APIs.
O pacote de analisadores notifica você sobre qualquer ação do controlador que:
A partir da ASP .NET 3.0 os analisadores estão incluídos no SDK do .NET Core. Para habilitar o analisador em seu projeto, inclua a propriedade IncludeOpenAPIAnalyzers no arquivo de projeto:
<PropertyGroup> <IncludeOpenAPIAnalyzers>true</IncludeOpenAPIAnalyzers> </PropertyGroup> |
Os documentos da OpenAPI contêm códigos de status e tipos de resposta que uma Action pode retornar. Na ASP.NET Core MVC, atributos como ProducesResponseTypeAttribute e ProducesAttribute são usados para documentar uma Action.
Nos projetos Web API da ASP.NET Core o Swagger/OpenAPI apresenta mais detalhes sobre como documentar sua API Web. Um dos analisadores no pacote inspeciona controladores anotados com ApiController e identifica ações que não documentam totalmente as respostas.
Para habilitar os analisadores em um projeto onde o ambiente possui o pacote .NET Core SDK 5.0 instalado basta incluir no arquivo de projeto (.cproj) o seguinte código:
<PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>net5.0</TargetFramework> <EnableNETAnalyzers>true</EnableNETAnalyzers> <AnalysisMode>AllEnabledByDefault</AnalysisMode> <AnalysisLevel>latest</AnalysisLevel> </PropertyGroup> |
Abaixo temos um exemplo de habilitação dos analisadores em um projeto Web API:
Se você não tiver o .NET 5.0 SDK instalado mas deseja usar os analisadores você deve instalar o pacote:
Install-Package Microsoft.CodeAnalysis.NetAnalyzers
E a seguir incluir as configurações abaixo no arquivo .csproj:
<PropertyGroup> <OutputType>Exe</OutputType> <TargetFramework>netcoreapp3.1</TargetFramework> <AnalysisMode>AllEnabledByDefault</AnalysisMode> <AnalysisLevel>latest</AnalysisLevel> </PropertyGroup> |
Depois de habilitar .NET Analyzers, você pode verificar se ele está funcionando, adicionando intencionalmente o código que irá acionar um aviso de análise de código, como o seguinte enum:
public enum Cores { Verde = 1, Azul = 2 } |
Em caso de dúvida, reconstrua o projeto. Se tudo estiver funcionando conforme o esperado, você deverá ver o seguinte aviso de análise de código:
warning CA1008 : Add a member to Cores that has a value of zero with a suggested name of ‘None’
E estamos conversados...
"Quanto ao mais,
irmãos, tudo o que é verdadeiro, tudo o que é honesto, tudo o que é justo, tudo
o que é puro, tudo o que é amável, tudo o que é de boa fama, se há alguma
virtude, e se há algum louvor, nisso pensai."
Filipenses 4:8
Referências: