.NET 6 新特性—— ASP.NET Core 极简 API

5,545 阅读3分钟

这是我参与8月更文挑战的第24天,活动详情查看:8月更文挑战

  • 📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!
  • 📢本文作者:由webmote 原创,首发于 【掘金】
  • 📢作者格言: 生活在于折腾,当你不折腾生活时,生活就开始折腾你,让我们一起加油!💪💪💪

1. 极简api

在.NET 6 中,微软将最简单的项目模板简化到最小精简模式。

Microsoft 创建此模板是为了让新开发人员更容易开始创建小型微服务和 HTTP API。

当我第一次看到极简 API 时,它让我想起了这一点,这是以前在比较谁的Hello World代码最精简吗?

var express = require("express");
var app = express();

app.listen(3000, () => {
 console.log("Server running on port 3000");
});

app.get("/url", (req, res, next) => {
 res.json(["Tony","Lisa","Michael","Ginger","Food"]);
});

看,这就是 NodeJS 使用 ExpressJS 来启动提供精简 API 的 http 服务器。实际上,ASP.NET Core 的极简 API 看起来和 NodeJS 和 ExpressJS 一样简单。

是的,比一比谁的代码少!

2. 来个例子

要创建一个极简的 API 项目,可以简单地自己编写或像往常一样使用 dotnet CLI:

dotnet new web -n MiniApi -o MiniApi

此命令会创建一个项目文件、应用程序设置文件和Program.cs

如下所示的文件:

using System;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.Hosting;

var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

if (app.Environment.IsDevelopment())
{
    app.UseDeveloperExceptionPage();
}

app.MapGet("/", () => "Hello World!");

app.Run();

Microsoft 将 dotnet CLI 中的空 Web 项目更改为极简 API。已经没有Startup.cs了。这一切都在Program.cs. 这样又可以拿去和新手们吹吹 ASP.NET Core 是多么简单了。

如果是 ASP.NET Core 老手,你应该知道这里用到的一些东西。

WebApplicationBuilder会使用默认设置来创建创建托管环境,在调用 Build() 后,您可以使用WebApplication对象来映射端点并添加中间件,例如DeveloperExceptionPage.

app.Run() 启动应用程序来为端点提供服务。

您可以像任何其他 ASP.NET Core 项目一样通过dotnet run在 IDE 中运行或单击 F5来启动项目。

实际上,它与任何其他 ASP.NET Core 项目一样,但大部分内容都封装和预配置在WebApplicationBuilder 中,如果您想注册一些额外的服务,您需要访问以下服务的服务属性WebApplicationBuilder

builder.Services.AddScoped<IMyService, MyService>();
builder.Services.AddTransient<IMyService, MyService>();
builder.Services.AddSingleton<IMyService, MyService>();

builder.Services.AddAuthentication();
builder.Services.AddAuthorization();
builder.Services.AddControllersWithViews();

您还可以在此处添加已知服务,例如身份验证、授权,甚至带有视图的 MVC 控制器

要配置ConfigurationLoggingHost等相关属性。

WebApplication实例上,它的工作方式与在类的Configure方法中配置应用程序的方式相同。在app变量上,你可以注册中间件和路由。在上面的示例中,它是默认路由上,并响应简单 GET 。您还可以像在常见的 ASP.NET Core 项目中一样注册 MVC、身份验证、授权、HSTS 等。

唯一的区别是它们都在一个文件中。

3. 极简也装逼

我真的很喜欢这种极简方式,因为少,所以经典!

你呢?喜欢吗? 就如同Console的 Hello World 一样?

🎏 4. 小结

例行小结,理性看待!

结的是啥啊,结的是我想你点赞而不可得的寂寞。😳😳😳

👓都看到这了,还在乎点个赞吗?

👓都点赞了,还在乎一个收藏吗?

👓都收藏了,还在乎一个评论吗?