FastEndpoints C# (.NET) 完整教程:方法、安装与实战指南
FastEndpoints 是一个现代化、高性能的 .NET (ASP.NET Core) Web API 构建库,实现了 REPR(Request-Endpoint-Response)模式。与传统的 MVC(Model-View-Controller)或 Minimal API 不同,FastEndpoints 提供了更清晰、模块化且易于测试的架构——每个端点都是一个独立的类,专门处理一个特定的请求。
为什么需要这个库?在拥有数十甚至数百个端点的大型项目中,传统控制器很容易变成逻辑臃肿的"上帝对象"。FastEndpoints 通过强制开发者明确分离职责(一个类 = 一个端点)解决了这个问题,从而简化了维护、测试和代码复用。此外,该库基于原生 System.Text.Json 构建,并针对最大性能进行了优化,使其成为 .NET 生态系统中构建 API 最快的库之一。
FastEndpoints 非常适合微服务架构、领域驱动设计(DDD)和整洁架构(Clean Architecture)项目。它提供内置验证(通过 FluentValidation)、Swagger/OpenAPI 支持、错误处理、缓存、端点版本控制等功能,让开发者无需编写大量样板代码。
安装
FastEndpoints 通过 NuGet 安装。你需要 .NET SDK 6.0 或更高版本。在终端中执行以下任一命令:
dotnet add package FastEndpoints
如需集成 Swagger(可选但推荐):
dotnet add package FastEndpoints.Swagger
如需使用 FluentValidation(推荐):
dotnet add package FluentValidation
快速入门——最小工作示例
创建一个新的 ASP.NET Core Web API 项目(空项目或带控制器的项目均可——我们仍将使用 FastEndpoints)。
步骤 1:配置 Program.cs
using FastEndpoints;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddFastEndpoints(); // 注册 FastEndpoints 服务
var app = builder.Build();
app.UseFastEndpoints(); // 连接中间件
app.Run();
步骤 2:创建端点
创建一个 Endpoints 文件夹,并在其中创建 HelloEndpoint.cs 文件:
using FastEndpoints;
namespace MyApi.Endpoints;
public class HelloEndpoint : Endpoint<EmptyRequest, string>
{
public override void Configure()
{
Get("/api/hello"); // HTTP GET 方法,路由为 /api/hello
AllowAnonymous(); // 无需授权即可访问
}
public override async Task HandleAsync(EmptyRequest req, CancellationToken ct)
{
await SendAsync("Hello, World!", cancellation: ct);
}
}
步骤 3:运行
启动应用程序(dotnet run),然后在浏览器中打开 http://localhost:5000/api/hello。你将看到响应:Hello, World!
核心类与方法
以下是 FastEndpoints 库的关键类和方法及其使用示例。
1. Endpoint<TRequest, TResponse> 类
签名: public abstract class Endpoint<TRequest, TResponse> : BaseEndpoint where TRequest : notnull, new()
功能: 创建端点的基类。接受请求类型(TRequest)和响应类型(TResponse)。
示例:
public class CreateUserEndpoint : Endpoint<CreateUserRequest, Us