在C#后端开发中,REPR端点模式将每个接口拆分为请求(Request)、端点(Endpoint)、响应(Response)三部分,结构清晰且易于测试。FastEndpoints是基于最小API的轻量框架,天然适合实现该模式。下面通过一个进阶示例说明具体做法。

什么是REPR模式
REPR模式强调单一职责:一个端点只处理一种请求并产出一种响应。相比传统MVC的Controller,它减少了基类继承和路由分散的问题。
核心组成
- Request:定义入参模型
- Endpoint:继承基类,编写处理逻辑
- Response:定义返回结构
使用FastEndpoints实现
先定义请求与响应模型,再创建端点类,最后在Program中注册。
定义模型
// 请求模型
public class CreateUserRequest
{
public string Name { get; set; }
public int Age { get; set; }
}
// 响应模型
public class CreateUserResponse
{
public int Id { get; set; }
public string Message { get; set; }
}
编写端点
端点类需继承 Endpoint<CreateUserRequest, CreateUserResponse> 并实现 HandleAsync。
using FastEndpoints;
public class CreateUserEndpoint : Endpoint<CreateUserRequest, CreateUserResponse>
{
public override void Configure()
{
Post("/api/users");
AllowAnonymous();
}
public override async Task HandleAsync(CreateUserRequest req, CancellationToken ct)
{
// 模拟业务处理
var newId = Random.Shared.Next(1, 1000);
var resp = new CreateUserResponse
{
Id = newId,
Message = $"用户 {req.Name} 已创建"
};
await SendAsync(resp, cancellation: ct);
}
}
注册与配置
在应用启动处添加FastEndpoints服务与中间件。
var builder = WebApplication.CreateBuilder(args); builder.Services.AddFastEndpoints(); var app = builder.Build(); app.UseFastEndpoints(); app.Run();
进阶:依赖注入与验证
可在端点构造函数注入服务,并使用 FluentValidation 做入参校验。
public class CreateUserValidator : Validator<CreateUserRequest>
{
public CreateUserValidator()
{
RuleFor(x => x.Name).NotEmpty();
RuleFor(x => x.Age).GreaterThan(0);
}
}
FastEndpoints会自动发现验证器并拦截非法请求,让REPR端点保持干净。
小结
通过FastEndpoints,C#开发者能以极少样板代码实现REPR端点模式,适合构建轻量API与微服务。实际项目中建议配合Swagger与日志中间件使用。
C#REPR模式FastEndpoints修改时间:2026-07-27 23:33:21