通用、易用、强大、跨平台的可视化 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
字段