使用 ASP.NET Core 6 探索简约 Web API - Scott Hanselman
使用 ASP.NET Core 6 探索简约 Web API
在 2016 年,我曾撰写过关于最小 Web Web API 开发。
.NET 6 的新语言特性与模板改进
.NET 6 引入了许多新的语言特性和模板改进,使开发变得更加简洁和高效。以下是新模板中采用的一些关键语言特性:
- 顶级语句:无需显式定义
Main方法,代码更加简洁。 - 异步主方法:支持异步操作的主方法。
- 全局
using指令:通过 SDK 默认值简化命名空间的引用。 - 文件范围的命名空间:减少嵌套,提升代码可读性。
- 目标类型的新表达式:简化对象初始化。
- 可为空的引用类型:增强代码的可维护性和安全性。
这些特性不仅提升了开发体验,还为未来的模板设计奠定了基础。
创建一个简单的 "Hello World" Web API
以下是一个返回 text/plain 的最小化 "Hello World" 示例:
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
if (app.Environment.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}app.MapGet("/", () => "Hello World!");app.Run();
这个示例展示了如何快速创建一个简单的 Web API。通过顶级语句和简化的配置,开发者可以更专注于业务逻辑。
添加控制器支持的 Web 应用
如果需要构建更复杂的 Web 应用,可以通过以下代码添加控制器支持:
var builder = WebApplication.CreateBuilder(args);
// 添加服务到容器
builder.Services.AddControllersWithViews();var app = builder.Build();// 配置 HTTP 请求管道
if (app.Environment.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
else
{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();app.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");app.Run();
通过这种方式,您可以轻松构建支持 MVC 模式的 Web 应用。
集成 OpenAPI 支持
通过引入 Swashbuckle.AspNetCore 包,可以为 Web API 添加 OpenAPI 支持。以下是具体实现:
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
var app = builder.Build();if (app.Environment.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}app.UseSwagger();
app.MapGet("/", () => "Hello World!");
app.UseSwaggerUI();app.Run();
运行后访问 https://localhost:5001/swagger,即可看到 Swagger UI 提供的 API 文档和测试工具:

使用 Entity Framework 实现数据访问
通过结合 Entity Framework,可以轻松实现对数据库的访问。以下是一个返回员工列表的示例:
app.UseEndpoints(endpoints =>
{
endpoints.MapGet("/api/employees", ([FromServices] AppDbContext db) =>
{
return db.Employees.ToList();
});
});
这个示例展示了如何以 JSON 格式返回实体数据,代码简洁且易于维护。
使用记录类型简化数据模型
.NET 6 引入了记录类型(Record),可以大幅减少样板代码。以下是一个简单的示例:
var app = WebApplication.Create(args);
app.MapGet("/person", () => new Person("Scott", "Hanselman"));
await app.RunAsync();
public record Person(string FirstName, string LastName);
访问 /person 路径时,返回的 JSON 数据如下:
{
"firstName": "Scott",
"lastName": "Hanselman"
}
记录类型不仅简化了数据模型的定义,还提升了代码的可读性。
更多资源
如果您想深入了解最小 Web API 的实现,可以参考以下资源:
- Anuraj 的博客:展示了如何结合 Entity Framework 和 OpenAPI 创建最小 Web API。
- Bipin Joshi 的文章:探讨了如何连接真实数据并以 JSON 输出。
- David Fowler 的 GitHub:提供了许多关于最小 API 的示例和最佳实践。
总结
.NET 6 的最小 Web API 提供了一种高效、简洁的开发方式。通过新语言特性和模板改进,开发者可以快速构建功能强大的 Web 应用,同时保持代码的简洁性和可维护性。无论是简单的 "Hello World" 示例,还是结合 OpenAPI 和数据库的复杂应用,.NET 6 都为开发者提供了强大的支持。
希望本文能为您提供灵感,帮助您更好地探索 .NET 6 的新特性。祝您开发愉快!
原文链接: https://www.hanselman.com/blog/exploring-a-minimal-web-api-with-aspnet-core-6
最新文章
- 通过 SEO rank API 获取百度关键词排名
- 音乐情绪可视化:Cyanite.ai 音乐情感分析API如何帮助我们理解音乐
- 从Flask到FastAPI的平滑迁移
- 什么是 API 即服务?
- 5大API故障原因可能正在干扰您的集成工作
- 如何获取Perplexity AI API Key 密钥(分步指南)
- 轻松翻译网页内容:Python 实现 kimi网页版 翻译功能
- 身份证OCR识别API在Java、Python、PHP中的使用教程
- 精通.NET Web API:构建强大API的最佳实践
- Flask、FastAPI 与 Django 框架比较:Python Web 应用开发教程
- 十大 API 安全供应商
- REST API接口命名的最佳实践