SuperAPI AI 工具集

dotnet-webapi

编程与开发

查看项目

更新于 10-16 09:31

技能介绍

用途:该技能用于开发 ASP.NET Core HTTP API,包括新增或修改基于控制器或最小 API 的 Web API 端点、配置 OpenAPI/Swagger 元数据与端点文档、定义请求/响应 DTO 与一致的 HTTP 状态码行为、添加 .http 文件等请求式 API 测试产物、以及配置集中式 API 错误处理中间件或异常映射。

不适用:通用 C# 编码风格或非 API 重构、EF Core 数据建模或查询优化(应使用 optimizing-ef-core-queries)、前端/Razor/Blazor UI 变更、gRPC 服务、SignalR 中心或实时消息流程。

使用前需先收集项目上下文:入口 Program.cs、现有控制器(继承 ControllerBase 或使用 [ApiController])、现有最小 API 注册(app.MapGet、app.MapPost、app.MapPut、app.MapDelete)、现有 DTO/模型/验证/错误处理类型,以及可用的构建、运行和测试命令。新增端点前先检查项目结构,遵循既有约定,不要混用控制器与最小 API 风格。

主要做法:DTO 使用 sealed record,输入按 Create{Entity}Request、Update{Entity}Request 命名,输出按 {Entity}Response、{Entity}ListResponse 命名,并添加 XML 文档注释;日期时间属性使用 DateTimeOffset;枚举默认序列化为字符串,配置 JsonStringEnumConverter;最小 API 在 .NET 10+ 可通过 builder.Services.AddValidation() 启用数据注解验证。

端点与错误处理:最小 API 优先使用 TypedResults,多结果类型显式标注 Results<T1,T2>;POST 返回 201 并带 Location 头,每个端点签名接受 CancellationToken 并向下传递。.NET 9+ 使用内置 OpenAPI 支持(builder.Services.AddOpenApi() 与 app.MapOpenApi()),不要向 .NET 9+ 项目添加 Swashbuckle 包。错误处理使用 AddProblemDetails 与 UseExceptionHandler,必要时实现 IExceptionHandler 返回 RFC 7807 Problem Details,并放在 Middleware/ 文件夹。服务层为每个服务定义接口并注册接口到实现,不直接注入数据存储。实现后创建 .http 文件展示调用方式。具体命令与配置需按项目实际情况调整。