点击上方蓝字
关注我们
(本文阅读时间:9分钟)
.NET 6 , 微软称为“最快的.NET” , 带有了许多令人兴奋的新功能、语言和性能改进 。 这是自 .NET Core 3.1 以来的第一个 LTS 版本 , 将支持三年 。 本次大版本发布 , 增加了一个新特性:Minimal APIs , 这是什么技术?
.NET6 使编写具有最小依赖性的 REST API 变得非常简单 。
Minimal APIs 似乎是微软对 NodeJS(使用 ExpressJS)HTTP 服务器的回应 , 它提供了最小的 API 。 但是微软也对这项技术增加了几个关键词:
- LightWeight , Single file , Cloud Native API
- Low ceremony , Top-Level C# programs
- Easy to get started
- Path to MVC
今天 , 我们花点时间 , 研究并科普一下.NET 6 Minimal APIs 。
微软MVP实验室研究员
文章图片
周国庆
微软MVP ,专注于.NET技术的大规模、分布式互联网应用 , 超过13年的一线开发、运维经历 , 踩过无数坑的同时 , 积累了大量分布式系统高可用性架构设计经验 。 目前专注于.NET互联网技术平台的建设和混沌工程实践 。
先看一下.NET 6 Minimal APIs的示例代码
app.Run;
在上面的示例中 , app.MapGet 方法使用了内联 lambda 表达式 , 完成一个 Controller Action 的业务逻辑 , 真的是超简单 。
超简单完成一个 HTTP WebAPI 的定义:不再有 Startup.cs、API 控制器、额外依赖项等 。
只需要这 4 行代码即可生成以下输出:
探究一下这段代码背后的一些技术
上面的代码 , 微软官方文档上 , 建议大家使用VS2022 , 其实用VS Code也可以
Tutorial: Create a minimal web API with ASP.NET Core
但是本机得先安装.NET 6 SDK
安装完成后 , 打开VS Code , 新建终端 , 创建一个Web Project
文章图片
代码工程中 , 我们可以看到:
Program.cs这个类中没有using了 , 当然也没有main函数了 , 这里跟大家解释一下:
① .NET5 引入了Top-Level Class , 可以没有main函数 , 代码作为直接入口执行
② .NET 6 新增了一个很棒的新特性——“隐式全局使用”
自动生成不可见的 using 语句并在全局范围内声明它们 , 因此不必处理在每个文件中重复声明命名空间的混乱 。
我们打开MyMinimalAPI.csproj 看看里面的内容 , 有一个配置:
<ImplicitUsings>enable</ImplicitUsings>
文章图片
dotnet build 后 , 找到 obj/Debug/net6.0 文件夹以查看隐藏的自动生成文件 - [ProjectName].GlobalUsings.g.cs 。 使用一个单独的类来将所有 using 语句保存在一个地方 。
文章图片
这个功能 , 让我们不需要在每个文件中重复声明命名空间的 using 引用了 。 的确很方便、简单了 。
当然 , 如果不想使用此功能 , 可以禁用 .csproj 文件中的 ImplicitUsings 标志 。
在上面的示例中 , app.MapGet 方法使用了内联 lambda 表达式 。 同时还提供了:
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
