{"id":25546975,"url":"https://github.com/fishjar/swagger-go","last_synced_at":"2026-02-11T20:30:15.912Z","repository":{"id":37196366,"uuid":"198997218","full_name":"fishjar/swagger-go","owner":"fishjar","description":"通用、易用、强大、跨平台的可视化 Swagger 文档编辑及前后端代码生成工具。","archived":false,"fork":false,"pushed_at":"2023-01-04T14:04:56.000Z","size":2652,"stargazers_count":2,"open_issues_count":45,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-05-28T23:02:45.902Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fishjar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-07-26T10:24:23.000Z","updated_at":"2024-05-28T23:02:45.902Z","dependencies_parsed_at":"2023-02-02T15:00:46.536Z","dependency_job_id":null,"html_url":"https://github.com/fishjar/swagger-go","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fishjar%2Fswagger-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fishjar%2Fswagger-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fishjar%2Fswagger-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fishjar%2Fswagger-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fishjar","download_url":"https://codeload.github.com/fishjar/swagger-go/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239808530,"owners_count":19700455,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-20T09:19:03.156Z","updated_at":"2025-02-20T09:19:03.735Z","avatar_url":"https://github.com/fishjar.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Swagger Go\n\n通用、易用、强大、跨平台的可视化 Swagger 文档编辑及前后端代码生成工具。\n\n## 技术栈\n\n- Electron\n- Swagger\n- React\n- Ant Design\n- ejs\n\n## 主要功能\n\n- swagger 文档编辑(仅支持 2.0 版)\n  - 提供样本 swagger 文档\n  - 提供导入 swagger 功能\n  - 可以导出 swagger 文档\n- swagger 文档预览\n  - swagger 源码预览\n  - 集成 swagger UI\n- 项目代码生成\n  - 利用模板自动生成项目代码\n  - 模板来源可以是本地或 Github\n  - 包括但不限于 KOA、Ant Design Pro 等项目\n\n## swagger 自定义字段说明\n\n| field          | type          | path                    | notice                     |\n| -------------- | ------------- | ----------------------- | -------------------------- |\n| x-associations | boolean       | /                       | 模型关联列表               |\n| x-auto         | boolean       | /paths/{path}/{method}/ | 是否自动生成的接口         |\n| x-isModel      | boolean       | /definitions/{model}/   | 是否（数据库）模型         |\n| x-plural       | string        | /definitions/{model}/   | 复数形式                   |\n| x-tableName    | string        | /definitions/{model}/   | 表名                       |\n| x-underscored  | boolean       | /definitions/{model}/   | 数据库字段是否用下划线写法 |\n| x-paranoid     | boolean       | /definitions/{model}/   | 是否启用软删除             |\n| x-tags         | array\u003cstring\u003e | /definitions/{model}/   | 模型生成的接口的标签       |\n| x-apis         | array\u003cstring\u003e | /definitions/{model}/   | 模型的接口列表             |\n| x-fieldName    | string        | ../properties/{field}/  | 自定义表中字段名           |\n| x-primaryKey   | boolean       | ../properties/{field}/  | 是否主键                   |\n| x-message      | string        | ../properties/{field}/  | 表单填写提示语             |\n| x-showTable    | boolean       | ../properties/{field}/  | 数据是否显示在后台列表中   |\n| x-showFilter   | boolean       | ../properties/{field}/  | 是否在列表上部搜索过滤     |\n| x-length       | number        | ../properties/{field}/  | string 字段长度            |\n| x-enumMap      | map           | ../properties/{field}/  | 枚举类型的字典             |\n| x-description  | text          | ../properties/{field}/  | 枚举类型的说明文字         |\n| x-showSorter   | boolean       | ../properties/{field}/  | 列表中是否可排序           |\n| x-isRichText   | boolean       | ../properties/{field}/  | 是否使用富文本编辑器       |\n| x-increment    | boolean       | ../properties/{field}/  | 是否子增长字段             |\n\n## 数据类型映射关系\n\n| Common      | `type`    | `format`       | Mysql       | Sequelize     | SQLAlchemy              | gorm      |\n| ----------- | --------- | -------------- | ----------- | ------------- | ----------------------- | --------- |\n| integer     | `integer` | `int4`         | TINYINT     | TINYINT       | -                       | int       |\n| integer     | `integer` | `int8`         | SMALLINT    | SMALLINT      | SMALLINT/SmallInteger   | int       |\n| integer     | `integer` | `int16`        | MEDIUMINT   | MEDIUMINT     | -                       | int       |\n| integer     | `integer` | `int32`        | INTEGER     | INTEGER       | Integer/INT/INTEGER     | int       |\n| long        | `integer` | `int64`        | BIGINT      | BIGINT        | BigInteger/BIGINT       | int       |\n| float       | `number`  | `float`        | FLOAT       | FLOAT         | Float/FLOAT             | float32   |\n| double      | `number`  | `double`       | DOUBLE      | DOUBLE        | -                       | float32   |\n| double      | `number`  | `decimal`      | DECIMAL     | DECIMAL       | DECIMAL/Numeric         | float32   |\n| string      | `string`  | `char`         | CHAR        | CHAR          | String/CHAR             | string    |\n| string      | `string`  | `string`       | VARCHAR     | STRING        | String/VARCHAR          | string    |\n| string      | `string`  | `text`         | TEXT        | TEXT          | Text/TEXT/CLOB          | string    |\n| date        | `string`  | `date`         | DATE        | DATEONLY      | Date/DATE               | time.Time |\n| dateTime    | `string`  | `date-time`    | DATETIME    | DATE          | DateTime/DATETIME       | time.Time |\n| dateTime    | `string`  | `date-time(6)` | DATETIME(6) | DATE(6)       | DateTime/DATETIME       | time.Time |\n| dateTime    | `string`  | `time-stamp`   | TIMESTAMP   | -             | TIMESTAMP               | -         |\n| email       | `string`  | `email`        | VARCHAR     | STRING        | VARCHAR                 | string    |\n| uri         | `string`  | `uri`          | VARCHAR     | STRING        | VARCHAR                 | string    |\n| uri         | `string`  | `hostname`     | VARCHAR     | STRING        | VARCHAR                 | string    |\n| uri         | `string`  | `ipv4`         | VARCHAR     | STRING        | VARCHAR                 | string    |\n| uri         | `string`  | `ipv6`         | VARCHAR     | STRING        | VARCHAR                 | string    |\n| byte        | `string`  | `byte`         | VARCHAR     | STRING        | VARCHAR                 | string    |\n| binary      | `string`  | `binary`       | BLOB/BINARY | STRING.BINARY | LargeBinary/BINARY/BLOB | -         |\n| password    | `string`  | `password`     | VARCHAR     | STRING        | -                       | string    |\n| uuid        | `string`  | `uuid`         | CHAR(36)    | UUID/UUIDV1   | -                       | string    |\n| object/dict | `string`  | `json`         | JSON        | JSON          | JSON                    | string    |\n| object/dict | `object`  | `object`       | JSON        | JSON          | JSON                    | string    |\n| array       | `array`   | `array`        | JSON        | JSON          | ARRAY                   | string    |\n| boolean     | `boolean` | `boolean`      | TINYINT(1)  | BOOLEAN       | Boolean/BOOLEAN         | bool      |\n| enum        | \\*        | `enum`         | ENUM        | ENUM          | Enum                    | -         |\n\n## 开发及编译打包\n\n```sh\n# 安装依赖\nyarn\n\n# 开发\nyarn dev\n\n# 编译\nyarn build\n\n# 打包\nyarn dist-linux # linux\nyarn dist-windows # windows\n```\n\n编译好的文件下载：\n\n- windows 版： `https://pan.baidu.com/s/1iGqJMy6gIjQjBMtmOlDWdg` 提取码: `1svx`\n- linux 版： `https://pan.baidu.com/s/1s3KmmI8IqPCcUflY0ds7YA` 提取码: `cghn`\n\n## 模板开发说明\n\n### 目录示意图\n\n```sh\n├── swagger                 # 项目根目录下需要此文件夹\n│   ├── config.json         # 必须的配置文件\n│   ├── replace\n│   │   └── initData.js\n│   └── template\n│       ├── handler.ejs\n│       ├── handlerIndex.ejs\n│       ├── model.ejs\n│       ├── modelIndex.ejs\n│       └── router.ejs\n```\n\n### 配置示例\n\n```json\n{\n  \"boilerplateLanguage\": \"nodejs\",\n  \"templateEngine\": \"ejs\",\n  \"globalFiles\": [\n    [\"swagger/template/router.ejs\", \"src/router/index.js\"],\n    [\"swagger/template/modelIndex.ejs\", \"src/model/index.js\"],\n    [\"swagger/template/handlerIndex.ejs\", \"src/handler/index.js\"]\n  ],\n  \"modelFiles\": [\n    [\"swagger/template/model.ejs\", \"src/model/*.js\"],\n    [\"swagger/template/handler.ejs\", \"src/handler/*.js\"]\n  ],\n  \"modelFilesCase\": \"pluralLower\",\n  \"replaceFiles\": [[\"swagger/replace/initData.js\", \"src/utils/initData.js\"]],\n  \"modelReplaceFiles\": [\n    [\"swagger/template/style.less\", \"src/pages/dashboard/*/style.less\"]\n  ],\n  \"removeFiles\": [\"swagger/swagger.yaml\"]\n}\n```\n\n### 配置说明\n\n```sh\n\"boilerplateLanguage\"       # 项目使用的开发语言\n\"templateEngine\"            # 使用的模板引擎\n\"globalFiles\"               # 全部模型文件列表，对应一个文件\n\"modelFiles\"                # 独立模型文件列表，对应多个（模型）文件，默认星号（*）会被模型名称代替\n\"modelFilesCase\"            # path的替换形式，可选值：default|lower|plural|pluralLower\n\"replaceFiles\"              # 需替换的文件列表\n\"modelReplaceFiles\"         # 去要替换的模型文件列表\n\"removeFiles\"               # 将删除的文件列表\n```\n\n- globalFiles 可使用对象：\n  - definitions\n  - dataFormats\n  - associations\n- modelFiles 可使用对象：\n  - modelKey\n  - model\n  - definitions\n  - dataFormats\n  - associations\n\n## 更新记录\n\n### v0.2.4(2020-02-05)\n\n- 添加了`flask`模板\n- 修改了`koa`模板\n\n### v0.2.3(2019-11-06)\n\n- 添加了`gin`后端接口模板\n- 修复了生成代码时在线模式的小 bug\n\n### v0.2.2(2019-10-23)\n\n- 修复了预览时生成的`yaml`文件中`tags`包含类似`*ref_0`的 bug\n- 增加了标题动态读取`package.json`中的版本号\n\n### v0.2.1(2019-10-22)\n\n- 添加了`antd`后台系统模板\n- 修改了`koa`模板的一个小问题\n- 模板配置文件新增`modelReplaceFiles`字段\n\n## 截图\n\n![swagger go screenshot 1](/screenshot/01.png)\n![swagger go screenshot 2](/screenshot/02.png)\n![swagger go screenshot 3](/screenshot/03.png)\n![swagger go screenshot 4](/screenshot/04.png)\n![swagger go screenshot 5](/screenshot/05.png)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffishjar%2Fswagger-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffishjar%2Fswagger-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffishjar%2Fswagger-go/lists"}