swagger-skills

v1.0.1

Use this skill to turn Swagger UI or OpenAPI/Swagger documentation links into organized API calling skills, including Python clients, field references, domai...

1· 16· 2 versions· 0 current· 0 all-time· Updated 2h ago· MIT-0
by月面仙人刺@jajay-liang

swagger-skills

swagger-skills 是一个独立的 Swagger/OpenAPI skill 生成工具。它可以根据接口文档链接编制新的接口调用资料,把 Swagger UI 或 OpenAPI/Swagger spec 转换为按 controller 归类的 Python 调用文件、接口字段说明和功能集成索引。

适用场景

当你需要根据接口文档快速生成可调用、可检索、可维护的 API skill 时使用本 skill:

  • 从 Swagger UI 页面自动发现真实 OpenAPI/Swagger spec 地址。
  • 从 OpenAPI 3.x 或 Swagger 2.0 规格生成接口调用 Python 文件。
  • 按 controller 聚合接口说明,方便定位业务能力。
  • 将接口调用域名集中维护在统一配置文件中。
  • 为每个接口生成一份调用逻辑和一份字段说明文档。

默认文档认证

如果 Swagger 文档需要登录或 Basic Auth,请在 config/sources.json 中显式填写文档认证信息:

  • 用户名:<DOC_USERNAME>
  • 密码:<DOC_PASSWORD>

该认证只用于拉取 Swagger 文档。生成出来的业务接口调用文件不会硬编码业务系统凭据。

目录说明

  • scripts/build_swagger_skill.py:根据 Swagger UI/spec 链接生成接口 skill 内容。
  • scripts/swagger_client.py:生成器和接口调用代码共用的 HTTP 工具。
  • config/sources.example.json:Swagger 文档来源配置示例。
  • generated/:实际产出的业务接口 skills;这些产物里的 SKILL.md 会按具体接口文档生成业务化说明,而不是复制本生成器的说明。

使用流程

  1. config/sources.example.json 复制为 config/sources.json
  2. config/sources.json 中填写一个或多个 Swagger UI 页面链接或 spec 链接。
  3. 安装依赖后执行生成命令。
cd <swagger-skills目录>
python -m pip install -r requirements.txt
python scripts\build_swagger_skill.py --clean-generated
  1. 如果 sources.json 包含多个链接,生成器会询问产出方式:
    • combined:多个接口文档合并产出 1 个 skill。
    • separate:每个接口文档分别产出 1 个 skill。
  2. 生成完成后,进入同级目录下具体产出的 skill,例如 ..\admin-config-swagger-skills\,从 FEATURES.md 按功能查找接口,再进入对应的 api_clients/<controller>/<operation>.pyreferences/<controller>/<operation>_OPENAPI.md

输出约定

实际产出的业务 skills 默认位于 swagger-skills 的同级目录下,避免生成器 skill 和产物 skill 被同一个父目录扫描时重复注册:

  • 合并模式:..\combined-swagger-skills\
  • 分开模式:..\<source_id>-swagger-skills\

产出物的文件夹和文件名只使用英文、数字和下划线。生成器会优先使用英文 tag、operationId、path 片段或 source_id;中文名称不会转换为拼音,也不会直接进入路径。

同一个 controller 下的接口会聚合到一个 controller 说明文件中,同时每个具体接口会产生两个关联文件:

  • api_clients/<controller>/<operation>.py
  • references/<controller>/<operation>_OPENAPI.md

config/domains.json 会记录每份接口文档对应的调用域名、spec 地址和文档认证设置。

Version tags

latestvk973gas1j2njgj9nr9n4nx4w6185tc0b