logo
4
3
Login
feat: python 生成器支持重命名 query params 变量名

CNB SDK Generator

License: MIT

基于 Swagger/OpenAPI 规范自动生成生产级 SDK 的工具, 目前支持以下语言:

  • Go
  • Python
  • Markdown (用于生成文档后喂给大模型)

有如下 sdk 使用该工具自动生成。

功能特性

  • 📦 模块化架构 - 生成:
    • 类型安全的客户端结构体
    • REST API 方法封装
    • 数据模型定义
    • 完善的错误处理
  • 🧩 智能代码生成
    • 自动处理路径/查询参数
    • 支持枚举类型生成
    • 自动导入依赖包
    • 代码格式标准化
  • 🔧 高度可配置
    • 忽略特定API路径
    • 排除模型字段

环境要求

  • Go 1.18+
  • Swagger 2.0/OpenAPI 规范文件

安装步骤

二进制安装 [荐]

curl https://cnb.cool/cnb/sdk/cnb-sdk-generator/-/git/raw/master/install.sh -sSfL | sh

使用 golang 安装

go install cnb.cool/cnb/sdk/cnb-sdk-generator

使用指南

从本地文件生成 cnb-sdk-generator -i swagger.json -o ./sdk 从远程URL生成 cnb-sdk-generator -i https://api.example.com/swagger.json -o ./generated 使用自定义配置 cnb-sdk-generator -i swagger.json -o ./sdk -e config.yaml

配置说明

如果有些 api 的原始定义有些问题,你修改它的默认行为,那么进行如下自定配置 config.yaml

paths: /api/v1/users/{id}: GET: ignore: true # 忽略这个 API form_to_body: true # 强制将 formData 定义的参数转换为 body 类型的调用方式,默认为 false, 比如 gitee 的 swagger 文件明明定义的是 formdata,实际调用却要使用 body 😅 😅 😅 😅 params: query: # 查询参数配置 page_size: # 原始参数名 rename: "pageSize" # 重命名后的参数名 models: dto.Repos4User: type_overrides: visibility_level: "string" # 重写 dto.Repos4User.visibility_level 的类型为 string

许可证

本项目采用 MIT 许可证