用途:在 ASP.NET Core 10 / .NET 10 上开发 API 与 HTTP 主机,语言为 C#,持久化使用 Entity Framework,契约遵循 api-design,实时通信使用 SignalR。保持 Minimal APIs 或 controllers 的既有风格,不在单个功能内迁移样式。
主要能力:覆盖 WebApplication 主机、Kestrel 与管道、Minimal APIs / MVC 端点、IServiceCollection 依赖注入、JWT bearer / cookies / policies 认证授权、稳定的 ProblemDetails 错误响应。建议组织为 src/MyApp.Api(Program.cs、Endpoints/ 或 Controllers/、Filters/、Auth/)、src/MyApp.Application、src/MyApp.Infrastructure。Program.cs 只负责组合配置、服务、管道与映射;处理器保持精简,逻辑下沉到应用服务;用 MapGroup 按版本或资源分组,如 /api/v1/orders。
关键规则:在边界校验输入(DataAnnotations、FluentValidation 或 IValidatableObject);区分认证与授权,使用 [Authorize(Policy = ...)] 或 RequireAuthorization 并在服务内检查归属;不把 EF 实体暴露为 JSON,使用 DTO;错误统一为 ProblemDetails 并返回正确状态码;密钥通过环境变量、user secrets 或 KeyVault 管理,不提交含密码的 appsettings;优雅关闭时由 Kestrel 排空,worker 使用 IHostApplicationLifetime;处理器接收 CancellationToken。示例:var orders = app.MapGroup("/api/v1/orders").RequireAuthorization(); 端点返回使用 TypedResults 以生成准确的 OpenAPI。控制器项目使用 [ApiController]、显式绑定与 ActionResult<T>,每资源一个控制器,避免 JObject。
管道顺序通常为:异常处理 → HTTPS → CORS(前后端分离时)→ 认证 → 授权 → 端点;全局异常处理返回 ProblemDetails,生产环境不输出堆栈;认证与昂贵路由加限流(AddRateLimiter);CORS 显式配置,不用 AllowAnyOrigin 加 credentials;仅在后端有已知代理时使用 Forwarded headers。JWT 需校验 issuer/audience/lifetime/signing 并注意 clock skew;Cookie 使用 HttpOnly、Secure、SameSite;策略按权限(如 orders:write)而非仅角色。
反模式包括:把业务逻辑写进 Program.cs、用 Results.Ok 返回 404、端点直接使用 DbContext 而无清晰工作单元、请求中调用 .GetAwaiter().GetResult()、controllers 与 Minimal APIs 重复实现同一资源。可与其他技能集成:csharp、i18n-backend、entity-framework、csharp-testing、signalr、grpc、production-readiness。完成标准:端点类型化、已校验、已授权;ProblemDetails 与状态码正确;DTO 不泄漏实体;感知 CancellationToken 与关闭;配置来自环境;OpenAPI 与实现一致。