SuperAPI AI 工具集

api-spec-to-service

编程与开发

查看项目

更新于 10-16 06:07

技能介绍

api-spec-to-service 是一个面向 ABP 框架的 API 规范解析与代码生成技能。它的目标是读取现有的 API 规范(Markdown 或 OpenAPI/Swagger),并自动生成与目标 ABP 项目既有代码约定高度一致的 ApplicationService、DTO、接口和 API 发布文档。

用途

该技能用于将 API 规范文档转化为 ABP 项目中的可运行服务代码。它适用于需要根据 API 定义快速搭建 ApplicationService 层的场景,并强调生成结果与项目现有风格保持一致。

主要能力

规范解析

支持读取 Markdown 文件(含端点文档)或 Swagger/OpenAPI 文件(.json 或 .yaml)。对于 Markdown,它会提取 HTTP 方法、路径、请求体 JSON 和响应体 JSON;对于 Swagger/OpenAPI,它使用 jq 解析 paths 与 components.schemas。

项目结构分析

自动查找 ABP 项目中的 Application 层项目(如 *.Application.csproj 与 *.Application.Contracts.csproj),并定位现有 AppService 文件作为模式来源。

模式自动检测

该技能的核心机制是不假设任何模式,而是从现有代码库中检测:

  • 响应模式:ResponseDto<T> 包装 vs 纯 DTO vs IActionResult
  • 错误处理模式:自定义 helper(this.Ok()/this.BadRequest())vs ABP 异常 vs 标准 .NET 异常
  • 验证模式:内联验证 vs FluentValidation vs DataAnnotations
  • 工作单元模式:显式 IUnitOfWorkManager vs [UnitOfWork] 特性 vs ABP 自动 UoW
  • 授权模式:权限常量位置与前缀
  • 命名空间模式、文件夹结构模式、DTO 存放位置模式
  • 日志模式、ObjectMapper 使用模式

代码生成

在检测完成后,技能会构建一个模式配置对象,并据此生成 DTO、接口(ICustomerAppService 等)以及实现类(CustomerAppService 等),生成的代码会匹配检测到的响应包装、错误处理、验证、UoW、授权、日志和映射方式。

使用方式

  1. 提供 API 规范路径(Markdown 或 Swagger/OpenAPI)。
  2. 技能读取规范,并查找 ABP Application 层项目与现有 AppService 示例。
  3. 若未找到 AppService,可让用户指定示例服务,或使用最小 ABP 默认(纯 DTO、标准异常)。
  4. 技能从现有代码中检测模式,构建配置对象。
  5. 解析规范中的端点、请求与响应结构。
  6. 按检测到的模式生成 DTO、接口和实现类。

安装与具体触发命令暂未提供。

适用场景

  • 已有 ABP 项目,并希望根据 API 规范快速生成服务层代码。
  • 团队有统一的代码约定,希望生成结果与既有风格一致。
  • 需要从 Swagger/OpenAPI 或 Markdown 规范批量生成 ApplicationService、DTO 和接口。
  • 需要生成 API 发布文档。

限制

  • 该技能面向 ABP 框架,生成内容依赖目标 ABP 项目的结构与约定。
  • 若项目中没有可参考的 AppService,代码风格检测将退化为最小 ABP 默认或需要用户提供示例。
  • 资料中未提供具体的安装命令、收费信息、价格、平台支持范围或运行环境要求。
  • 资料中未提供完整的错误处理、边界情况或生成失败时的回退方案细节。