今年 6 月份的时候时候 .NET 团队就在 GitHub 公布了 ASP.NET Core 2.2 版本的 Roadmap(文末有链接), 而前两天 ASP.NET Core 2.2 预览版 2 已经可以下载使用了, 正式版大约会在今年年底的时候发布.
相对于 2.0 and 2.1 来说, 这次更新算是一次小更新了, 主要包含 Bug 修复, 性能优化, 增加一些小的特性, 和 Merge 社区的 PR.
下面来总结一下 ASP.NET Core 2.2 有哪些新的东西.
ApiController 特性增强
ApiController 特性是 ASP.NET Core 2.1 引入的, 应用在 Controller 类上, 主要用来自动对 Model 进行验证并自动响应 400 错误. 引入 ApiController 特性后比如下面的代码是多余的:
- if (!ModelState.IsValid)
- {
- return BadRequest(ModelState);
- }
在版本 2.2,ApiController 特性提供了 API Explorer 元数据, 可以更友好地生成 Swagger/OpenAPI 文档. 然后还增加了一些默认约定, 如果代码不符合约定, 是会有建议的. 比如下面的代码:
- [HttpPost("/orders")]
- public ActionResult<Order> CreateOrder(OrderData orderData)
- {
- ....
- return Ok(new Order() {...});
- }
会出现建议提示, 通过快捷键 Ctrl+., 编辑器会建议你这么写:
- [HttpPost("/orders")]
- [ProducesResponseType(typeof(CatalogItem),(int)HttpStatusCode.OK)]
- public ActionResult<Order> CreateOrder(OrderData orderData)
- {
- ....
- return Ok(new Order() {...});
- }
引入新的路由系统
会有一个叫 Dispatcher 的东西, 它的设计是为了让路由匹配更早地出现在管道中, 这样可对中间件可见, 中间件通过它可以知道下一个路径的信息.
提供调用 API 的 REPL 工具
在 dotnet CLI 中集成可以调用 API 的 REPL 工具. 这个主要是方便快速调试 API 的, 类似命令行的 curl 命令, 但应该更强大.
生成调用 API 客户端代码 (C# 和 TypeScript)
可以根据写好的 API 元数据, 生成调用 API 的客户端代码 (C# 和 TypeScript).
授权服务
提供基于 OpenID 的授权服务, 这个服务相当于项目的统一授权点, 可用于 SPA,Native App 等.
来源: https://www.cnblogs.com/willick/p/aspnetcore2-2-2.html