安装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,如果已经设置过可以跳过此步骤。

  1. # 设置 go get 命令下载第三方包的目录
  2. setx GOPATH "D:\你的目录"
  3. # 设置 go install 命令编译后生成可执行文件的存放目录
  4. setx GOBIN "D:\你的目录\bin"
  5. # 关闭当前终端,然后开启一个新的终端,查看GOBIN目录
  6. go env GOBIN

(2) 把sponge及其依赖插件安装到GOBIN目录下。

  1. # 安装sponge
  2. go install github.com/zhufuyi/sponge/cmd/sponge@latest
  3. # 初始化sponge,自动安装sponge依赖插件
  4. sponge init
  5. # 查看插件是否都安装成功,如果发现有插件没有安装成功,执行命令重试 sponge plugins --install
  6. sponge plugins
  7. # 查看sponge版本
  8. sponge -v

在windows除了上面的原生安装sponge方式,还支持已经打包好的快捷安装sponge方式,点击查看安装说明

Mac环境

在mac环境安装sponge。

(1) 把$GOBIN添加到系统环境变量path,如果已经设置过可以跳过此步骤。

  1. # 打开 .bashrc 文件
  2. vim ~/.bashrc
  3. # 复制下面命令到.bashrc
  4. export GOROOT="/opt/go" # 你的go安装目录
  5. export GOPATH=$HOME/go # 设置 go get 命令下载第三方包的目录
  6. export GOBIN=$GOPATH/bin # 设置 go install 命令编译后生成可执行文件的存放目录
  7. export PATH=$PATH:$GOBIN:$GOROOT/bin # 把$GOBIN目录添加到系统环境变量path
  8. # 保存 .bashrc 文件后,使设置生效
  9. source ~/.bashrc
  10. # 查看GOBIN目录
  11. go env GOBIN

(2) 执行命令安装sponge,sponge和依赖插件将安装到 $GOBIN 目录下。

  1. # 安装sponge
  2. go install github.com/zhufuyi/sponge/cmd/sponge@latest
  3. # 初始化sponge,自动安装sponge依赖插件
  4. sponge init
  5. # 查看插件是否都安装成功,如果发现有插件没有安装成功,执行命令重试 sponge plugins --install
  6. sponge plugins
  7. # 查看sponge版本
  8. sponge -v

Linux环境

在linux环境安装sponge。

(1) 把$GOBIN添加到系统环境变量path,如果已经设置过可以跳过此步骤。

  1. # 打开 .bashrc 文件
  2. vim ~/.bashrc
  3. # 复制下面命令到.bashrc
  4. export GOROOT="/opt/go" # 你的go安装目录
  5. export GOPATH=$HOME/go # 设置 go get 命令下载第三方包的目录
  6. export GOBIN=$GOPATH/bin # 设置 go install 命令编译后生成可执行文件的存放目录
  7. export PATH=$PATH:$GOBIN:$GOROOT/bin # 把$GOBIN目录添加到系统环境变量path
  8. # 保存 .bashrc 文件后,使设置生效
  9. source ~/.bashrc
  10. # 查看GOBIN目录
  11. go env GOBIN

(2) 执行命令安装sponge,sponge和依赖插件将安装到 $GOBIN 目录下。

  1. # 安装sponge
  2. go install github.com/zhufuyi/sponge/cmd/sponge@latest
  3. # 初始化sponge,自动安装sponge依赖插件
  4. sponge init
  5. # 查看插件是否都安装成功,如果发现有插件没有安装成功,执行命令重试 sponge plugins --install
  6. sponge plugins
  7. # 查看sponge版本
  8. sponge -v

Docker环境

Note

使用docker安装的sponge只是sponge ui界面服务,如果需要在生成的服务代码基础上进行开发,还是需要在本地安装sponge和依赖插件。

方式一:Docker启动

  1. docker run -d --name sponge -p 24631:24631 zhufuyi/sponge:latest -a http://你的宿主机ip:24631

方式二:docker-compose启动

docker-compose.yaml 文件内容如下:

  1. version: "3.7"
  2. services:
  3. sponge:
  4. image: zhufuyi/sponge:latest
  5. container_name: sponge
  6. restart: always
  7. command: ["-a","http://你的宿主机ip:24631"]
  8. ports:
  9. - "24631:24631"

启动服务:

  1. docker-compose up -d

在docker部署成功后,在浏览器访问 http://你的宿主机ip:24631

Tip

升级最新sponge版本,执行命令 sponge upgrade

启动sponge UI界面服务

sponge 支持丰富的生成代码命令,部分常用的生成代码命令都有对应的UI界面,UI界面有记忆功能、有参数详细的说明、有生成代码后的使用步骤说明,因此使用UI界面更加简单易用。

打开终端,执行命令:

  1. 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服务完整项目代码,如下图所示:

web-http

解压代码文件,这是创建的user项目代码目录:

  1. .
  2. ├─ cmd
  3. └─ user
  4. ├─ initial
  5. └─ main.go
  6. ├─ configs
  7. ├─ deployments
  8. ├─ binary
  9. ├─ docker-compose
  10. └─ kubernetes
  11. ├─ docs
  12. ├─ internal
  13. ├─ cache
  14. ├─ config
  15. ├─ dao
  16. ├─ ecode
  17. ├─ handler
  18. ├─ model
  19. ├─ routers
  20. ├─ server
  21. └─ types
  22. └─ scripts

打开终端,切换到代码目录,执行命令:

  1. # 生成swagger文档
  2. make docs
  3. # 编译和运行服务
  4. make run

在浏览器打开 http://localhost:8080/swagger/index.html,在页面上进行增删改查api测试,如下图所示:

web-http-swagger

如果有新的mysql表,如何批量生成标准化的CRUD api代码无缝嵌入到项目代码呢?如果想新增的自定义api,又如何操作呢?在 web开发(sql) 章节中详细介绍。

Tip

共有6种方式创建不同类型项目,在后面的章节中详细介绍。