通用、易用、强大、跨平台的可视化 Swagger 文档编辑及前后端代码生成工具。
- Electron
- Swagger
- React
- Ant Design
- ejs
- swagger 文档编辑(仅支持 2.0 版)
- 提供样本 swagger 文档
- 提供导入 swagger 功能
- 可以导出 swagger 文档
- swagger 文档预览
- swagger 源码预览
- 集成 swagger UI
- 项目代码生成
- 利用模板自动生成项目代码
- 模板来源可以是本地或 Github
- 包括但不限于 KOA、Ant Design Pro 等项目
| field | type | path | notice |
|---|---|---|---|
| x-associations | boolean | / | 模型关联列表 |
| x-auto | boolean | /paths/{path}/{method}/ | 是否自动生成的接口 |
| x-isModel | boolean | /definitions/{model}/ | 是否(数据库)模型 |
| x-plural | string | /definitions/{model}/ | 复数形式 |
| x-tableName | string | /definitions/{model}/ | 表名 |
| x-underscored | boolean | /definitions/{model}/ | 数据库字段是否用下划线写法 |
| x-paranoid | boolean | /definitions/{model}/ | 是否启用软删除 |
| x-tags | array | /definitions/{model}/ | 模型生成的接口的标签 |
| x-apis | array | /definitions/{model}/ | 模型的接口列表 |
| x-fieldName | string | ../properties/{field}/ | 自定义表中字段名 |
| x-primaryKey | boolean | ../properties/{field}/ | 是否主键 |
| x-message | string | ../properties/{field}/ | 表单填写提示语 |
| x-showTable | boolean | ../properties/{field}/ | 数据是否显示在后台列表中 |
| x-showFilter | boolean | ../properties/{field}/ | 是否在列表上部搜索过滤 |
| x-length | number | ../properties/{field}/ | string 字段长度 |
| x-enumMap | map | ../properties/{field}/ | 枚举类型的字典 |
| x-description | text | ../properties/{field}/ | 枚举类型的说明文字 |
| x-showSorter | boolean | ../properties/{field}/ | 列表中是否可排序 |
| x-isRichText | boolean | ../properties/{field}/ | 是否使用富文本编辑器 |
| x-increment | boolean | ../properties/{field}/ | 是否子增长字段 |
| Common | type |
format |
Mysql | Sequelize | SQLAlchemy | gorm |
|---|---|---|---|---|---|---|
| integer | integer |
int4 |
TINYINT | TINYINT | - | int |
| integer | integer |
int8 |
SMALLINT | SMALLINT | SMALLINT/SmallInteger | int |
| integer | integer |
int16 |
MEDIUMINT | MEDIUMINT | - | int |
| integer | integer |
int32 |
INTEGER | INTEGER | Integer/INT/INTEGER | int |
| long | integer |
int64 |
BIGINT | BIGINT | BigInteger/BIGINT | int |
| float | number |
float |
FLOAT | FLOAT | Float/FLOAT | float32 |
| double | number |
double |
DOUBLE | DOUBLE | - | float32 |
| double | number |
decimal |
DECIMAL | DECIMAL | DECIMAL/Numeric | float32 |
| string | string |
char |
CHAR | CHAR | String/CHAR | string |
| string | string |
string |
VARCHAR | STRING | String/VARCHAR | string |
| string | string |
text |
TEXT | TEXT | Text/TEXT/CLOB | string |
| date | string |
date |
DATE | DATEONLY | Date/DATE | time.Time |
| dateTime | string |
date-time |
DATETIME | DATE | DateTime/DATETIME | time.Time |
| dateTime | string |
date-time(6) |
DATETIME(6) | DATE(6) | DateTime/DATETIME | time.Time |
| dateTime | string |
time-stamp |
TIMESTAMP | - | TIMESTAMP | - |
string |
email |
VARCHAR | STRING | VARCHAR | string | |
| uri | string |
uri |
VARCHAR | STRING | VARCHAR | string |
| uri | string |
hostname |
VARCHAR | STRING | VARCHAR | string |
| uri | string |
ipv4 |
VARCHAR | STRING | VARCHAR | string |
| uri | string |
ipv6 |
VARCHAR | STRING | VARCHAR | string |
| byte | string |
byte |
VARCHAR | STRING | VARCHAR | string |
| binary | string |
binary |
BLOB/BINARY | STRING.BINARY | LargeBinary/BINARY/BLOB | - |
| password | string |
password |
VARCHAR | STRING | - | string |
| uuid | string |
uuid |
CHAR(36) | UUID/UUIDV1 | - | string |
| object/dict | string |
json |
JSON | JSON | JSON | string |
| object/dict | object |
object |
JSON | JSON | JSON | string |
| array | array |
array |
JSON | JSON | ARRAY | string |
| boolean | boolean |
boolean |
TINYINT(1) | BOOLEAN | Boolean/BOOLEAN | bool |
| enum | * | enum |
ENUM | ENUM | Enum | - |
# 安装依赖
yarn
# 开发
yarn dev
# 编译
yarn build
# 打包
yarn dist-linux # linux
yarn dist-windows # windows编译好的文件下载:
- windows 版:
https://pan.baidu.com/s/1iGqJMy6gIjQjBMtmOlDWdg提取码:1svx - linux 版:
https://pan.baidu.com/s/1s3KmmI8IqPCcUflY0ds7YA提取码:cghn
├── swagger # 项目根目录下需要此文件夹
│ ├── config.json # 必须的配置文件
│ ├── replace
│ │ └── initData.js
│ └── template
│ ├── handler.ejs
│ ├── handlerIndex.ejs
│ ├── model.ejs
│ ├── modelIndex.ejs
│ └── router.ejs{
"boilerplateLanguage": "nodejs",
"templateEngine": "ejs",
"globalFiles": [
["swagger/template/router.ejs", "src/router/index.js"],
["swagger/template/modelIndex.ejs", "src/model/index.js"],
["swagger/template/handlerIndex.ejs", "src/handler/index.js"]
],
"modelFiles": [
["swagger/template/model.ejs", "src/model/*.js"],
["swagger/template/handler.ejs", "src/handler/*.js"]
],
"modelFilesCase": "pluralLower",
"replaceFiles": [["swagger/replace/initData.js", "src/utils/initData.js"]],
"modelReplaceFiles": [
["swagger/template/style.less", "src/pages/dashboard/*/style.less"]
],
"removeFiles": ["swagger/swagger.yaml"]
}"boilerplateLanguage" # 项目使用的开发语言
"templateEngine" # 使用的模板引擎
"globalFiles" # 全部模型文件列表,对应一个文件
"modelFiles" # 独立模型文件列表,对应多个(模型)文件,默认星号(*)会被模型名称代替
"modelFilesCase" # path的替换形式,可选值:default|lower|plural|pluralLower
"replaceFiles" # 需替换的文件列表
"modelReplaceFiles" # 去要替换的模型文件列表
"removeFiles" # 将删除的文件列表- globalFiles 可使用对象:
- definitions
- dataFormats
- associations
- modelFiles 可使用对象:
- modelKey
- model
- definitions
- dataFormats
- associations
- 添加了
flask模板 - 修改了
koa模板
- 添加了
gin后端接口模板 - 修复了生成代码时在线模式的小 bug
- 修复了预览时生成的
yaml文件中tags包含类似*ref_0的 bug - 增加了标题动态读取
package.json中的版本号
- 添加了
antd后台系统模板 - 修改了
koa模板的一个小问题 - 模板配置文件新增
modelReplaceFiles字段




