一千个人心中有一千个哈姆雷特,一千个架构师心中有一千种完美架构。
通过http/rpc协议,将自己喜欢的几种语言协作起来,发挥各自优点。
# 下载源码 git clone https://github.com/hua345/codegen.git # 安安装go-bindata go get github.com/spf13/cobra # github.com/go-yaml/yaml -> gopkg.in/yaml.v2 go get github.com/go-yaml/yaml go get github.com/sirupsen/logrus go get github.com/go-bindata/go-bindata/... # 打包静态资源 go generate # 编译程序 go build # 安装程序 go install
codegen.exe -h Code Generate Springboot/SpringCloud/Gin/Express Helper Usage: codegen [command] Available Commands: api Springboot接口生成 cloud SpringCloud代码生成 config 配置文件命令 express Node express代码生成 gin Golang Gin代码生成 help Help about any command init Springboot初始化工程 Flags: -f, --config string 读取配置文件(默认./codegen.yaml) -h, --help help for codegen Use "codegen [command] --help" for more information about a command.
codegen.exe config init
会在当前目录下生成codegen.yaml配置文件
- GroupID 格式:com.{公司/BU }.业务线.[子业务线],最多 4 级。
说明:{公司/BU} 例如:alibaba/taobao/tmall/aliexpress 等 BU 一级;子业务线可选。 正例:com.taobao.jstorm 或 com.alibaba.dubbo.register
- ArtifactID 格式:产品线名-模块名。语义不重复不遗漏,先到中央仓库去查证一下。
正例:dubbo-client / fastjson-api / jstorm-tool
defaultHttpMethod: post defaultHttpPort: 8080 apiBaseUrl: api/v1 authorName: chenjianhua database: # postgresql/mariadb/mysql/ type: mariadb host: 192.168.137.128:3306 databaseName: db_example username: springuser password: 123456 redis: host: 192.168.137.128 port: 6379 # Redis默认情况下有16个分片,这里配置具体使用的分片,默认是0 database: 0 password: # 连接超时时间(毫秒) timeout: 1000 # 连接池中的最大空闲连接 默认 8 maxIdle: 8 # 连接池最大连接数(使用负值表示没有限制) 默认 8 maxActive: 8 springboot: groupId: com.github artifactId: code-admin supportRedis: true #shiro, security, spring-session, redis-session, none userService: none supportMaven: true # 默认配置文件类型是properties,也支持yaml supportConfigTypeYaml: false supportGradle: true supportDocker: true # 国际化 supportI18n: true # 数据源: druid/HikariCP supportDataSource: druid supportSwagger: true
codegen.exe init
$ codegen.exe api -h
Springboot接口生成工具
Usage:
codegen api [flags]
Examples:
./codegen.exe api -m methodName -u url [-a ArtifactId]
[-r requestMethod] [-g GroupId] [-d Description]
Flags:
-a, --ArtifactId string ArtifactID 格式:产品线名-模块名。
-d, --description string 接口描述
-g, --groupId string GroupID 格式:com.{公司/BU }.业务线.[子业务线]
-h, --help help for api
-m, --methodName string Controller类中的方法名称
-r, --requestMethod string http请求方式Get/Post/Delete,默认: Get
-u, --urlPath string Url路径
Global Flags:
-f, --config string 读取配置文件(默认./codegen.yaml)主要根据URL设计和方法来生成对应的接口
codegen.exe api -m addArticle -u addArticle
codegen.exe api -m getUser -u user
codegen.exe api -m addUser -u user -r post
codegen.exe api -m getUserDetail -u user/{id} -r get
codegen.exe api -m deleteUser -u user -r delete