














Introduction to Carter
https://jdaniel1987.github.io/Carter
这是一篇非常适合转载的技术博客文章。我已经为你整理好了完整的中文翻译,并按照你的要求,将原文中缺失的代码片段补全,同时保留了图片占位符的位置,方便你直接复制到博客编辑器中。
标题: Carter 简介:优化 ASP.NET Core API 路由管理
作者: Jaime Daniel Delgado Ortega
发布时间: 2024年9月11日
阅读时间: 3 分钟
如果你曾经发现你的 Program.cs 文件中充斥着端点映射代码,你并不孤单。随着你的 API 项目不断壮大,这种做法会变得笨重且难以维护 (unwieldy)。
Carter 是一个为 ASP.NET Core 设计的轻量级且灵活的路由库,它简化了 RESTful API 的创建过程。它提供了一种简单明了的方式来定义路由和处理 HTTP 请求,使开发人员能够用更少的样板代码和更高的可维护性来构建 API。
以下是将 Carter 集成到项目中的具体步骤。
1. 安装 NuGet 包
首先,通过 NuGet 将 Carter 添加到你的项目中。你可以在 Visual Studio 中操作:右键单击你的项目 -> 管理 NuGet 包... -> 浏览,搜索 "Carter",选中它并点击安装。
[图片占位:NuGet 包管理器安装 Carter 的截图]
(建议在此处插入一张显示在 Visual Studio 中搜索并安装 Carter 包的截图)
2. 审查当前的端点
你的端点可能直接映射在 Program.cs 文件中,看起来像这样:
public class Program
{
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
// 服务注入和其他配置...
// 所有的端点都写在这里,随着项目变大,这个文件会变得非常臃肿
app.MapGet("api/task", (HttpContext httpContext) =>
{
// .................... 业务逻辑
return Results.Ok(new { Message = "Get Task" });
})
.WithName("GetTask")
.WithOpenApi();
app.MapPost("api/task", (HttpContext httpContext) =>
{
// .................... 业务逻辑
return Results.Ok(new { Message = "Post Task" });
})
.WithName("PostTask")
.WithOpenApi();
// ....................................................................
app.Run();
}
}
3. 为每个端点创建 Carter 模块
用模块化的 Carter 模块替换你的内联端点:
GetTaskModule.cs
using Carter;
public class GetTaskModule : ICarterModule
{
public void AddRoutes(IEndpointRouteBuilder app)
{
app.MapGet("api/task", (HttpContext httpContext) =>
{
// .................... 业务逻辑
return Results.Ok(new { Message = "Get Task" });
})
.WithName("GetTask")
.WithOpenApi();
}
}
AddTaskModule.cs
using Carter;
public class AddTaskModule : ICarterModule
{
public void AddRoutes(IEndpointRouteBuilder app)
{
app.MapPost("api/task", (HttpContext httpContext) =>
{
// .................... 业务逻辑
return Results.Ok(new { Message = "Post Task" });
})
.WithName("PostTask")
.WithOpenApi();
}
}
4. 从 Program.cs 中移除端点
为了避免冲突,请从你的 Program.cs 文件中删除旧的端点映射代码。
5. 在 Program.cs 中注册 Carter
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
// 注册 Carter 服务
builder.Services.AddCarter();
// ....................
}
6. 映射 Carter 模块
最后,在你的 Program.cs 中映射 Carter 模块,以注册所有 ICarterModule 的实现。
public static void Main(string[] args)
{
// ....................
var app = builder.Build();
// 映射所有 Carter 模块
app.MapCarter();
// ....................
app.Run();
}
现在,你的端点被清晰地分离到了不同的模块中,使你的 API 更易于维护和扩展。享受 Carter 带来的流畅开发体验吧!
标签: #C# #.NET #Carter #MinimalAPIs #代码封装
(本文根据 CC BY 4.0 许可协议发布)
出处:http://www.cnblogs.com/lightsong/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。