ASP.NET Core 提供 MVC 分析器套件,用於 Web API 專案。 分析器會使用 以 ApiControllerAttribute標註的控制器,同時建置 Web API 慣例。
分析器套件會通知您任何控制器動作:
- 傳回未宣告的狀態代碼。
- 傳回未宣告的成功結果。
- 記錄未傳回的狀態代碼。
- 包含明確的模型驗證檢查。
參考分析器套件
分析器會包含在 .NET SDK 中。 若要在項目中啟用分析器,請在項目檔中包含 IncludeOpenAPIAnalyzers 屬性。
<PropertyGroup>
<IncludeOpenAPIAnalyzers>true</IncludeOpenAPIAnalyzers>
</PropertyGroup>
API 網絡慣例分析器
OpenAPI 檔包含動作可能會傳回的狀態代碼和回應類型。 在 ASP.NET Core MVC 中,ProducesResponseTypeAttribute 和 ProducesAttribute 等屬性被用來記錄動作。 ASP.NET Core Web API 文件與 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"的專案。