钱行慕

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

【译】使用Web API分析器

原文链接:传送门

ASP.NET Core 2.2及后续版本提供了一个MVC分析器包,其目的是与API项目一起使用。

当与web API conventions 进行编译项目时,这个分析器与用ApiControllerAttribute标记的Controller一起使用。

如果控制器Action方法满足其中任意一条,那么分析器包便会通知你:

  • 返回一个未声明的状态码
  • 返回一个未声明的成功结果
  • 标识一个没有返回的状态码
  • 包含 一个显式的模型验证检查

引用分析器包

在ASP.NET Core 3.0及后续版本中,分析器包含在.NET Core SDK中。为了在你的项目中启用分析器,请在工程文件中包含IncludeOpenAPIAnalyzer属性。

<PropertyGroup>
 <IncludeOpenAPIAnalyzers>true</IncludeOpenAPIAnalyzers>
</PropertyGroup>

适配Web API约定的分析器

OpenAPI包含了一个Action可能会返回的状态码以及响应类型。在ASP.NET Core MVC中,类似于 ProducesResponseTypeAttribute 和 ProducesAttribute 这样的特性被用来文档化一个Action。 ASP.NET Core web API documentation with 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失败状态码。分析器会将对于404状态码的文档化丢失作为一个警告而报告出来。可以通过提示来修复此问题。

额外资源

 

posted on   钱行慕  阅读(141)  评论(0编辑  收藏  举报

编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示