用途:面向采用 .NET Clean Architecture 的项目,生成 RESTful API 控制器代码,遵循 REST 约定并集成 MediatR。
主要能力:通过 ISender 发送命令与查询;采用 URL 段版本控制(如 api/v1/{entities});支持基于角色与基于权限的授权;统一返回合适的 HTTP 状态码;提供与领域模型分离的请求/响应 DTO。内置 CRUD 速查:GET /{id} 返回 200/404,GET / 返回 200,POST / 返回 201/400,PUT /{id} 返回 200/404,PATCH /{id} 返回 200/404,DELETE /{id} 返回 204/404。
结构:控制器置于 /API/Controllers/{Feature}/ 下,包含 {Entity}Controller.cs 与 Request{Action}{Entity}.cs 等文件。
用法与模板:提供完整 CRUD 控制器模板,使用 [Authorize]、[ApiController]、[ApiVersion(ApiVersions.V1)]、[Route("api/v{version:apiVersion}/{entities}")];构造函数注入 ISender;使用 ProducesResponseType 标注响应类型;失败时按错误码返回 NotFound 或 BadRequest。还提供批量创建、activate/deactivate、search、父子资源(children)等复杂操作模板,以及基于角色(Authorize(Roles=...))、基于权限(HasPermission(Permissions.{Entities}Write))和 AllowAnonymous 的授权示例。
版本与权限配置:ApiVersions 定义 V1、V2;AddApiVersioning 中设置 DefaultApiVersion、ReportApiVersions、UrlSegmentApiVersionReader、AssumeDefaultVersionWhenUnspecified 并调用 AddMvc。Permissions 与 Roles 以常量类形式给出,权限形如 {entities}:read、{entities}:write。
适用场景:在 .NET Clean Architecture 解决方案中需要按既定约定生成控制器、DTO、授权与版本控制代码时使用。
限制:技能介绍未说明安装命令、依赖版本、收费情况或兼容框架范围,这些信息暂未提供;实际使用前需结合项目现有约定与包版本确认。