用途:在 ABP Framework 中用 C# 实现 REST API 端点,聚焦实现层面;API 契约设计可参考 api-design-principles。
主要能力:
- AppService 完整 CRUD:基于 ApplicationService 与 IRepository,实现 GetAsync、GetListAsync、CreateAsync、UpdateAsync、DeleteAsync。
- DTO 模式:输出 DTO 继承 FullAuditedEntityDto,创建/更新 DTO 作为输入,列表输入继承 PagedAndSortedResultRequestDto 并附加过滤字段。
- 分页与过滤:用 WhereIf 按条件拼接查询,先 CountAsync 取总数,再 OrderBy 与 PageBy 分页,返回 PagedResultDto。
- 授权:用 [Authorize] 标注权限常量,也可用 AuthorizationService.CheckAsync 做程序化与基于资源的检查。
- 校验:用 FluentValidation 编写 DTO 校验器,支持异步唯一性校验。
- 自定义端点:用 [HttpPost]、[HttpGet] 定义 activate、by-email、lookup 等动作,并可用 [Route] 覆盖路由。
- 映射:示例使用 Mapperly 的 [Mapper] 生成实体与 DTO 映射。
- 错误处理:抛出 BusinessException 并配合错误码与本地化文本。
使用方式:定义 IAppService 接口(Application.Contracts),在 AppService 中注入仓储并实现方法;ABP 按命名自动生成路由,如 GET /api/app/patient/{id}、POST /api/app/patient。
适用场景:ABP 后端开发者实现分页列表、过滤查询、权限控制与自定义 API 动作。
限制:资料未提供安装命令、版本要求、性能数据或收费信息;示例代码需按实际项目调整。