技能简介
phoenix-api-gen 是一个代码生成工具,能够根据 OpenAPI 规范或自然语言描述,自动生成完整的 Phoenix JSON API 项目结构。涵盖上下文模块、Ecto 模型、数据库迁移、控制器、JSON 渲染器、路由配置、认证插件以及配套的 ExUnit 测试和工厂数据。
能做什么
- 解析 OpenAPI YAML 文件,提取路径定义、请求体与响应体结构
- 将每个 Schema 映射为 Ecto 模型及对应的数据库迁移文件
- 按资源分组生成控制器动作,自动组织到对应的 Context 边界内
- 根据 securitySchemes 生成 API Key 或 Bearer Token 认证插件
- 基于自然语言描述推断资源关系,生成全套项目代码并等待用户确认
- 输出符合 Phoenix 1.7+ 规范的 *JSON 渲染模块(旧版本兼容 *View)
- 生成包含正常路径与校验错误场景的 ExUnit 测试用例
使用说明
- 确保本地已安装 Elixir 1.14+ 和 Phoenix 1.7+ 环境
- 将 OpenAPI 规范文件(YAML 或 JSON)放置于项目目录,或准备自然语言描述文本
- 运行生成命令,工具将按固定顺序创建文件:迁移文件 → Ecto 模型 → Context 模块 → 控制器与 FallbackController → JSON 渲染器 → 路由作用域 → 认证插件 → 测试与工厂
- 检查生成的多租户字段(tenant_id)和复合索引是否符合业务需求
- 执行
mix ecto.migrate 应用数据库变更,随后运行 mix test 验证生成代码
输入与输出
见下方输入与输出表格。
| 项目 | 内容 |
|---|
| 输入 | OpenAPI 3.x 规范文件(YAML/JSON)、自然语言 API 描述文本、可选的现有 Phoenix 项目结构 |
| 输出 | Ecto 模型、数据库迁移、Context 模块、控制器、FallbackController、JSON 渲染器、路由配置、认证插件、ExUnit 测试与工厂模块 |
| 适用人群 | Elixir/Phoenix 后端开发者、需快速搭建 REST API 原型的技术团队、拥有 OpenAPI 契约需工程化落地的项目组 |
| 不包含 | 前端代码、GraphQL、部署配置、监控日志方案、性能压测脚本 |
风险提示
- 生成的认证插件仅提供基础模板,生产环境需补充密钥轮换、速率限制等机制
- 多租户实现依赖请求头传递 tenant_id,需配合网关层校验防止越权访问
- 自然语言描述可能存在歧义,关键业务规则生成后务必人工复核
- 自动生成的测试覆盖 happy path 与基础校验错误,复杂业务逻辑需补充测试用例
- 二进制 ID 与 UTC 微秒时间戳为默认配置,与现有项目混用时注意类型兼容性
来源信息
原始链接:https://github.com/openclaw/skills/tree/main/skills/gchapim/phoenix-api-gen/SKILL.md
来源类型:GitHub 仓库文档