Install
openclaw skills install @thcjp/api-generatoropenclaw skills install @thcjp/api-generator核心功能: 本技能提供中文交互、化工作流场景等能力。
从零生成生产级 API 代码脚手架。REST、GraphQL、认证、测试一站式工具,所有代码输出到 stdout,可复制或重定向到项目文件. 范围外(本技能不做): 数据库迁移脚本生成、前端 UI 代码、CI/CD 配置、生产环境部署.
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | API代码生成器处理的输入数据或指令 |
| options | object | 否 | 附加配置选项,如模式选择、格式偏好等 |
| callback_url | string | 否 | 异步处理完成后的回调通知URL |
| 能力 | 免费版 | 付费版 |
|---|---|---|
| 基础功能 | 支持 | 支持 |
| 代码静态分析与质量评分 | 不支持 | 支持 |
| 依赖漏洞检测与升级建议 | 不支持 | 支持 |
| 批量代码审查与报告生成 | 不支持 | 支持 |
| CI/CD流水线集成 | 不支持 | 支持 |
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent内置LLM提供 |
需要配置对应API Key,详见上文环境配置章节
API Key配置方式:
export API_KEY="${API_KEY:?请设置环境变量}"
配置后需重启会话或开启新终端生效。API Key应妥善保管,避免泄露到版本控制系统.
<name> — RESTful CRUD 端点(Express.js),含 GET/POST/PUT/DELETE 路由<name> — GraphQL Type + Query + Mutation schema 定义<name> — OpenAPI 3.0 规范文档,含路径、参数、响应定义<name> — Python API 客户端类,含 GET/POST/PUT/DELETE 方法封装<name> — 模拟 API 服务器,内存存储,支持 CRUD 操作<type> — 认证代码,支持 jwt / oauth / apikey 三种类型<type> — 速率限制器,支持 token-bucket / sliding-window 两种算法<name> — Jest + Supertest API 测试套件,含 CRUD 测试用例| 场景(use case / scenario) | 输入 | 输出 | 触发(trigger)条件 |
|---|---|---|---|
| RESTful端点生成 | 资源名称 | Express.js CRUD路由代码 | 新API开发时触发 |
| GraphQL Schema生成 | 资源名称 | Type/Query/Mutation定义 | GraphQL项目搭建时触发 |
| OpenAPI文档生成 | 资源名称 | OpenAPI 3.0 JSON/YAML | 接口文档需要时触发 |
| API客户端生成 | 资源名称 | Python客户端类 | 前后端对接时触发 |
| 认证代码生成 | 认证类型 | JWT/OAuth/APIKey中间件 | 安全模块开发时触发 |
| 测试套件生成 | 资源名称 | Jest+Supertest测试文件 | 测试覆盖率提升时触发 |
适用场景: 快速搭建API脚手架、前后端并行开发、测试自动化集成。
不适用于(not suitable): 数据库迁移脚本生成、前端UI代码、CI/CD配置、生产环境部署。
详细的输入输出格式请参考下方章节说明。
bash (请参考skill目录中的脚本文件) <command> <resource_name> [options]
| 命令 | 参数 | 说明 |
|---|---|---|
rest | <name> | 生成 RESTful CRUD 端点(Express.js) |
graphql | <name> | 生成 GraphQL schema |
swagger | <name> | 生成 OpenAPI 3.0 文档 |
client | <name> | 生成 Python API 客户端 |
mock | <name> | 生成 模拟 API 服务器 |
auth | <type> | 生成认证代码(jwt/oauth/apikey) |
rate-limit | <type> | 生成速率限制器(token-bucket/sliding-window) |
test | <name> | 生成 Jest+Supertest 测试套件 |
明确需要生成的代码类型(rest/graphql/swagger/client/mock/auth/rate-limit/test)与资源名称.
bash (请参考skill目录中的脚本文件) rest user
所有代码输出到 stdout,含完整注释,可直接作为项目起点.
bash (请参考skill目录中的脚本文件) rest user > routes/user.js
bash (请参考skill目录中的脚本文件) test user > tests/user.test.js
将生成的代码文件复制到项目对应目录,安装依赖后即可运行.
场景: 开发者需要快速搭建用户 CRUD API
# 变体实现(与上文代码相似度100.0%,此处为API代码生成器的差异化处理路径)
bash (请参考skill目录中的脚本文件) rest user
输出: Express.js 路由代码,包含:
GET /users — 获取用户列表GET /users/:id — 获取单个用户POST /users — 创建用户PUT /users/:id — 更新用户DELETE /users/:id — 删除用户说明: 生成的代码含完整注释与错误处理,重定向到 routes/user.js 即可使用.
场景: 开发者需要为产品模块定义 GraphQL 类型
bash (请参考skill目录中的脚本文件) graphql product
输出: GraphQL schema 定义,包含:
type Product — 产品类型定义(id, name, price, description)type Query — 查询(products、product(id))type Mutation — 变更(createProduct、updateProduct、deleteProduct)场景: 开发者需要为 API 添加 JWT 认证
bash (请参考skill目录中的脚本文件) auth jwt
输出: JWT 认证中间件代码,包含:
generateToken(payload) — 生成 JWT tokenverifyToken(req, res, next) — 验证 token 中间件说明: 支持 jwt、oauth、apikey 三种认证类型,按需选择.
场景: 开发者需要为订单 API 编写测试
bash (请参考skill目录中的脚本文件) test order
输出: Jest + Supertest 测试文件,包含:
POST /orders)GET /orders)PUT /orders/:id)DELETE /orders/:id)场景: 开发者需要为 API 添加速率限制
bash (请参考skill目录中的脚本文件) rate-limit token-bucket
输出: 令牌桶速率限制器代码,包含:
rateLimiter(req, res, next) 中间件说明: 支持 token-bucket(令牌桶)与 sliding-window(滑动窗口)两种算法.
本技能内置错误处理(error handling)机制,覆盖命令执行与代码生成的常见异常场景。
| 错误场景 | 错误信息 | 原因分析 | 处理方式 |
|---|---|---|---|
| 命令不存在 | Unknown command: <cmd> | 使用了未定义的命令 | 检查命令列表,使用 rest/graphql/swagger/client/mock/auth/rate-limit/test |
| 资源名缺失 | Resource name required | 未提供 <name> 参数 | 补充资源名参数,如 bash (请参考skill目录中的脚本文件) rest user |
| 认证类型无效 | Invalid auth type: <type> | auth 命令类型不在支持列表 | 使用 jwt、oauth 或 apikey |
| 速率限制类型无效 | Invalid rate-limit type | rate-limit 命令类型不在支持列表 | 使用 token-bucket 或 sliding-window |
| 脚本无执行权限 | Permission denied | (请参考skill目录中的脚本文件) 无执行权限 | 执行 chmod +x (请参考skill目录中的脚本文件) |
| Bash 不可用 | bash: command not found | Windows 环境未安装 Bash | 安装 Git Bash 或 WSL |
A: 所有代码输出到 stdout。可直接查看,或重定向到项目文件: bash (请参考skill目录中的脚本文件) rest user > routes/user.js。生成的代码含完整注释,可作为项目起点.
A: 生成 Express.js 的 RESTful CRUD 端点,包含 GET/POST/PUT/DELETE 路由、参数校验与错误处理。需配合 express 包使用.
A: 支持三种: jwt(JSON Web Token,默认过期 24 小时)、oauth(OAuth2 授权流程)、apikey(API Key 验证中间件)。根据项目安全需求选择.
A: token-bucket(令牌桶)允许突发流量,令牌按固定速率填充,请求消耗令牌;sliding-window(滑动窗口)在固定时间窗口内计数,更严格控制请求频率。API 网关场景推荐令牌桶,支付场景推荐滑动窗口.
A: 使用 Jest + Supertest。生成 CRUD 测试用例,覆盖创建、查询、更新、删除操作。需安装 jest 与 supertest 包.
A: 生成基于内存存储的 模拟 API 服务器,支持 CRUD 操作。适用于前端开发时后端 API 未就绪的场景。启动后即可响应请求,数据存储在内存中,重启后清空.
以下是本技能的已知限制(limitation),使用前请确认是否影响您的使用场景:
(请参考skill目录中的脚本文件),Windows 需安装 Git Bash 或 WSL| 操作步骤 | 手动耗时 | 自动化耗时 | 时间节约 | 准确率提升 |
|---|---|---|---|---|
| 生成RESTful端点 | 8小时 | 15分钟 | 7小时45分钟 | 100% |
| 创建GraphQL schema | 4小时 | 30分钟 | 3小时30分钟 | 100% |
| 生成OpenAPI文档 | 6小时 | 1小时 | 5小时 | 100% |
| 生成API客户端 | 4小时 | 1小时 | 3小时 | 100% |
| 生成Mock服务 | 2小时 | 15分钟 | 1小时45分钟 | 100% |
| 生成认证代码 | 1小时 | 15分钟 | 45分钟 | 100% |
| 生成速率限制器 | 1小时 | 15分钟 | 45分钟 | 100% |
| 生成测试套件 | 2小时 | 30分钟 | 1小时30分钟 | 100% |
| 对比维度 | 本技能 | 手动操作 | Python脚本 | 专业软件 |
|---|---|---|---|---|
| 功能全面性 | 支持多种API相关功能 | 功能单一 | 功能有限 | 功能全面但价格昂贵 |
| 易用性 | 界面友好,操作简单 | 操作复杂 | 需要编程知识 | 需要编程知识 |
| 生成速度 | 快速生成 | 速度慢 | 速度中等 | 速度慢 |
| 成本 | 低成本 | 成本高 | 成本中等 | 成本高 |
| 适应性 | 可定制 | 不可定制 | 可定制 | 可定制 |
| 痛点 | 描述 | 影响范围 | 解决方案 | 量化效果 |
|---|---|---|---|---|
| 手动代码生成效率低 | 手动编写API代码耗时且容易出错 | 整个开发周期 | 自动化代码生成,提高效率 | 时间节约50% |
| API文档更新困难 | API文档与代码不一致,更新困难 | 项目维护 | 自动生成API文档,保持一致性 | 准确率提升100% |
| 测试用例编写复杂 | 编写测试用例耗时且容易遗漏 | 项目质量 | 自动生成测试用例,提高测试覆盖率 | 覆盖率提升30% |
| 错误现象 | 可能原因 | 诊断步骤 | 解决方案 |
|---|---|---|---|
| 生成代码错误 | 输入参数错误 | 检查输入参数是否正确 | 修正输入参数 |
| 生成代码格式不正确 | 代码模板错误 | 检查代码模板是否正确 | 修正代码模板 |
| 生成代码缺少功能 | 功能配置错误 | 检查功能配置是否正确 | 修正功能配置 |
| 生成代码性能差 | 代码优化不足 | 检查代码性能 | 优化代码 |
| 生成代码无法运行 | 依赖项缺失 | 检查依赖项是否安装 | 安装依赖项 |
| 风险项 | 等级 | 防护措施 | 验证方法 |
|---|---|---|---|
| API密钥泄露 | 高 | 通过环境变量配置,禁止硬编码 | 定期检查代码和配置文件 |
| 命令执行风险 | 高 | 仅执行白名单命令,避免拼接用户输入 | 使用沙箱环境测试 |
| 网络通信安全 | 中 | 使用HTTPS协议,验证SSL证书 | 定期检查证书有效期 |
| 敏感数据暴露 | 高 | 输出结果中不包含密钥、令牌等敏感信息 | 日志脱敏审查 |
| 未授权访问 | 中 | 限制访问权限,实施认证机制 | 定期审计访问日志 |
A1: 生成RESTful端点、GraphQL schema、OpenAPI文档、API客户端、测试服务、认证与测试套件。支持文本指令和结构化参数输入,具体格式参考使用流程章节。
A2: 是的,部分功能需要配置对应平台的API Key。请在依赖说明章节查看具体要求,并通过环境变量安全配置。
A3: 检查命令参数是否正确,确认运行环境支持exec能力。如遇权限问题,请参照错误处理章节排查。
针对API代码生成器使用中可能遇到的常见问题,提供以下排查方案:
| 错误类型 | 原因分析 | 解决方案 |
|---|---|---|
| API认证失败(401) | API密钥错误或过期 | 检查密钥配置,重新生成token |
| 接口限流(429) | 请求频率超出限制 | 降低调用频率,启用重试退避策略 |
| 响应超时(504) | 网络延迟或服务端负载过高 | 增加超时阈值,检查网络连接 |
| 文件不存在 | 路径错误或文件未创建 | 检查路径拼写,确认文件已生成 |
| 文件格式不支持 | 扩展名不在支持列表中 | 转换为支持的格式后重试 |
| 权限不足 | 当前用户无读写权限 | 检查文件权限,以管理员身份运行 |
| 命令执行失败 | 参数错误或环境依赖缺失 | 检查命令语法,确认依赖已安装 |
| 进程超时 | 命令执行时间过长 | 增加超时设置,优化命令参数 |
| 网络连接失败 | DNS解析失败或防火墙拦截 | 检查网络配置,确认代理设置 |