安装sponge之前先安装依赖go和protoc,如果安装过可以跳过这个步骤。
✅ 安装 go
要求go 1.16以上版本: https://studygolang.com/dl
Tip
如果不能科学上网,获取github的库可能会遇到超时失败问题,建议设置为国内代理,执行命令 go env -w GOPROXY=https://goproxy.cn,direct
✅ 安装 protoc
下载protoc地址: https://github.com/protocolbuffers/protobuf/releases/tag/v25.2
根据系统类型下载对应的 protoc 可执行文件,把 protoc 可执行文件移动到与 go 可执行文件同一个目录。
安装 sponge
安装完go和protoc之后,接下来安装sponge及其插件,支持在windows、mac、linux和docker环境安装。
Windows环境
Note
因为sponge依赖一些linux命令,因此在windows环境中需要安装git bash、make来支持linux命令环境。
✅ 安装 git for windows
如果已经安装过,可以跳过安装git步骤。
下载git地址: Git-2.44.0-64-bit.exe
下载后安装git,安装过程一直默认即可。安装git之后在任意文件夹下右键(显示更多选项),如果有选择【Open Git Bash here】打开git bash终端,说明已经安装git成功。
Tip
解决git bash显示中文乱码,右键git bash终端,选择菜单【options】 —> 【Text】,找到character set,选择UTF-8后保存。
✅ 安装 make
下载mingw64地址: x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z
解压文件,在bin目录下的找到mingw32-make.exe
可执行文件,复制并改名为make.exe
,把make.exe
可执行文件移动到GOBIN
目录(go env GOBIN查看,如果为空,下面有GOBIN
设置说明)。
查看make版本:make -v
✅ 安装sponge及其插件
打开git bash终端(不是windows自带的cmd)。
(1) 把GOBIN
添加到系统环境变量path,如果已经设置过可以跳过此步骤。
# 设置 go get 命令下载第三方包的目录
setx GOPATH "D:\你的目录"
# 设置 go install 命令编译后生成可执行文件的存放目录
setx GOBIN "D:\你的目录\bin"
# 关闭当前终端,然后开启一个新的终端,查看GOBIN目录
go env GOBIN
(2) 把sponge及其依赖插件安装到GOBIN
目录下。
# 安装sponge
go install github.com/zhufuyi/sponge/cmd/sponge@latest
# 初始化sponge,自动安装sponge依赖插件
sponge init
# 查看插件是否都安装成功,如果发现有插件没有安装成功,执行命令重试 sponge plugins --install
sponge plugins
# 查看sponge版本
sponge -v
在windows除了上面的原生安装sponge方式,还支持已经打包好的快捷安装sponge方式,点击查看安装说明。
Mac环境
在mac环境安装sponge。
(1) 把$GOBIN
添加到系统环境变量path,如果已经设置过可以跳过此步骤。
# 打开 .bashrc 文件
vim ~/.bashrc
# 复制下面命令到.bashrc
export GOROOT="/opt/go" # 你的go安装目录
export GOPATH=$HOME/go # 设置 go get 命令下载第三方包的目录
export GOBIN=$GOPATH/bin # 设置 go install 命令编译后生成可执行文件的存放目录
export PATH=$PATH:$GOBIN:$GOROOT/bin # 把$GOBIN目录添加到系统环境变量path
# 保存 .bashrc 文件后,使设置生效
source ~/.bashrc
# 查看GOBIN目录
go env GOBIN
(2) 执行命令安装sponge,sponge和依赖插件将安装到 $GOBIN
目录下。
# 安装sponge
go install github.com/zhufuyi/sponge/cmd/sponge@latest
# 初始化sponge,自动安装sponge依赖插件
sponge init
# 查看插件是否都安装成功,如果发现有插件没有安装成功,执行命令重试 sponge plugins --install
sponge plugins
# 查看sponge版本
sponge -v
Linux环境
在linux环境安装sponge。
(1) 把$GOBIN
添加到系统环境变量path,如果已经设置过可以跳过此步骤。
# 打开 .bashrc 文件
vim ~/.bashrc
# 复制下面命令到.bashrc
export GOROOT="/opt/go" # 你的go安装目录
export GOPATH=$HOME/go # 设置 go get 命令下载第三方包的目录
export GOBIN=$GOPATH/bin # 设置 go install 命令编译后生成可执行文件的存放目录
export PATH=$PATH:$GOBIN:$GOROOT/bin # 把$GOBIN目录添加到系统环境变量path
# 保存 .bashrc 文件后,使设置生效
source ~/.bashrc
# 查看GOBIN目录
go env GOBIN
(2) 执行命令安装sponge,sponge和依赖插件将安装到 $GOBIN
目录下。
# 安装sponge
go install github.com/zhufuyi/sponge/cmd/sponge@latest
# 初始化sponge,自动安装sponge依赖插件
sponge init
# 查看插件是否都安装成功,如果发现有插件没有安装成功,执行命令重试 sponge plugins --install
sponge plugins
# 查看sponge版本
sponge -v
Docker环境
Note
使用docker安装的sponge只是sponge ui界面服务,如果需要在生成的服务代码基础上进行开发,还是需要在本地安装sponge和依赖插件。
方式一:Docker启动
docker run -d --name sponge -p 24631:24631 zhufuyi/sponge:latest -a http://你的宿主机ip:24631
方式二:docker-compose启动
docker-compose.yaml 文件内容如下:
version: "3.7"
services:
sponge:
image: zhufuyi/sponge:latest
container_name: sponge
restart: always
command: ["-a","http://你的宿主机ip:24631"]
ports:
- "24631:24631"
启动服务:
docker-compose up -d
在docker部署成功后,在浏览器访问 http://你的宿主机ip:24631
。
Tip
升级最新sponge版本,执行命令 sponge upgrade
启动sponge UI界面服务
sponge 支持丰富的生成代码命令,部分常用的生成代码命令都有对应的UI界面,UI界面有记忆功能、有参数详细的说明、有生成代码后的使用步骤说明,因此使用UI界面更加简单易用。
打开终端,执行命令:
sponge run
在浏览器访问 http://localhost:24631 ,进入sponge生成代码的UI界面。
在sponge UI界面上支持6种方式创建项目, 每种方式创建的项目使用场景在 生成代码框架 章节中介绍,根据项目实际需要选择其中一种方式。在sponge UI界面还支持生成多种公共代码,这些公共代码都可以无缝嵌入到项目代码中,除了在UI界面生成代码,更多生成代码命令集成在项目代码下的Makefile文件中,通过Makefile生成的代码都是无缝嵌入到项目代码中。这么多生成代码命令目的是尽可能让golang也可以实现”低代码开发”。
[创建项目示例]
下面使用⓵基于sql创建web服务
方式来创建项目示例,也是6种方式中创建项目最简单之一,不需要编写任何一行go代码,只需连接mysql数据库,就可以生成一个线上部署的完整web服务项目,web服务的api包括了标准化的CRUD
、自定义条件的分页查询
、缓存
,也包括了丰富的组件,开箱即用。
Tip
生成代码依赖mysql服务和mysql表,这里有docker启动mysql服务脚本,启动mysql服务之后导入mysql表sql。
进入sponge的UI界面,点击左边菜单栏【SQL】—> 【创建web服务】,填写数据库 dsn
,点击获取表名
,然后选择表名(可多选),接着填写其他参数,鼠标放在问号?
位置查看参数说明,填写完参数后,点击按钮下载代码
生成web服务完整项目代码,如下图所示:
解压代码文件,这是创建的user项目代码目录:
.
├─ cmd
│ └─ user
│ ├─ initial
│ └─ main.go
├─ configs
├─ deployments
│ ├─ binary
│ ├─ docker-compose
│ └─ kubernetes
├─ docs
├─ internal
│ ├─ cache
│ ├─ config
│ ├─ dao
│ ├─ ecode
│ ├─ handler
│ ├─ model
│ ├─ routers
│ ├─ server
│ └─ types
└─ scripts
打开终端,切换到代码目录,执行命令:
# 生成swagger文档
make docs
# 编译和运行服务
make run
在浏览器打开 http://localhost:8080/swagger/index.html,在页面上进行增删改查api测试,如下图所示:
如果有新的mysql表,如何批量生成标准化的CRUD api代码无缝嵌入到项目代码呢?如果想新增的自定义api,又如何操作呢?在 web开发(sql) 章节中详细介绍。
Tip
共有6种方式创建不同类型项目,在后面的章节中详细介绍。