aspnetcore/web-api/advanced/analyzers.md
ASP.NET Core provides an MVC analyzers package intended for use with web API projects. The analyzers work with controllers annotated with xref:Microsoft.AspNetCore.Mvc.ApiControllerAttribute, while building on web API conventions.
The analyzers package notifies you of any controller action that:
The analyzers are included in the .NET SDK. To enable the analyzer in your project, include the IncludeOpenAPIAnalyzers property in the project file:
<PropertyGroup>
<IncludeOpenAPIAnalyzers>true</IncludeOpenAPIAnalyzers>
</PropertyGroup>
OpenAPI documents contain status codes and response types that an action may return. In ASP.NET Core MVC, attributes such as xref:Microsoft.AspNetCore.Mvc.ProducesResponseTypeAttribute and xref:Microsoft.AspNetCore.Mvc.ProducesAttribute are used to document an action. xref:tutorials/web-api-help-pages-using-swagger goes into further detail on documenting your web API.
One of the analyzers in the package inspects controllers annotated with xref:Microsoft.AspNetCore.Mvc.ApiControllerAttribute and identifies actions that don't entirely document their responses. Consider the following example:
The preceding action documents the HTTP 200 success return type but doesn't document the HTTP 404 failure status code. The analyzer reports the missing documentation for the HTTP 404 status code as a warning. An option to fix the problem is provided.
Analyzers don't work with library projects or projects referencing Sdk="Microsoft.NET.Sdk".