1

sponge 是一个集成了自动生成代码、gin框架和一些常用流行库的生产力工具。sponge拥有丰富的生成代码命令,生成不同的功能代码可以组合成完整的服务(类似人为打散的海绵细胞可以自动重组成一个新的海绵)。代码解耦模块化设计,很容易构建出从开发到部署的完整工程项目,让你开发web服务项目轻而易举、事半功倍,使用go也可以"低代码开发"。

Github地址: https://github.com/zhufuyi/sponge


特点

  • 使用简单:使用UI界面操作,简单易用。
  • web框架:内置了 Gin 框架和常用的中间件(日志、request_id、jwt鉴权、限流、熔断、链路跟踪、指标采集等)
  • 自动生成代码:根据sql或protobuf和参数生成不同功能代码,例如生成web服务代码、handler(CRUD)代码、dao(CRUD)代码、model代码、redis缓存代码等。
  • 代码解耦可扩展:所有生成的代码都可以无缝衔接,不需要手动调整代码,支持自动合并新增模板代码,实现api接口"低代码开发"。
  • 高可靠:服务代码解耦模块化设计,代码经过严格的测试,并遵循良好的编码规范。
  • 高性能:在单台服务器中的实际业务中压测获取数据api接口轻松过万qps。
  • 部署简单:支持一键部署到服务器、docker、k8s上。


优势

  • 提高开发效率:通过生成代码来提高开发效率,省去大量手写代码的时间。
  • 降低开发成本:集成了 gin 、gorm、go-redis 等流行库和生成代码功能,只需专注编写业务逻辑代码,可以快速开发高性能高可靠 web 服务,降低开发成本。
  • 提高开发质量:开发项目简单化、标准化,生成的代码包括了测试用例。


功能

sponge包含丰富的组件(按需使用):


目录结构

生成的服务代码目录结构遵循 project-layout,代码目录结构如下所示:

.
├── api            # proto文件和生成的*pb.go目录
├── assets         # 其他与资源库一起使用的资产(图片、logo等)目录
├── cmd            # 程序入口目录
├── configs        # 配置文件的目录
├── deployments    # IaaS、PaaS、系统和容器协调部署的配置和模板目录
├── docs           # 设计文档和界面文档目录
├── internal       # 私有应用程序和库的代码目录
│    ├── cache        # 基于业务包装的缓存目录
│    ├── config       # Go结构的配置文件目录
│    ├── dao          # 数据访问目录
│    ├── ecode        # 自定义业务错误代码目录
│    ├── handler      # http的业务功能实现目录
│    ├── model        # 数据库模型目录
│    ├── routers      # http路由目录
│    ├── rpcclient    # 连接grpc服务的客户端目录
│    ├── server       # 服务入口,包括http等
│    └── types        # http的请求和响应类型目录
├── pkg            # 外部应用程序可以使用的库目录
├── scripts        # 用于执行各种构建、安装、分析等操作的脚本目录
├── test           # 额外的外部测试程序和测试数据
└── third_party    # 外部帮助程序、分叉代码和其他第三方工具


快速开始

安装sponge

支持在windows、mac、linux、docker环境下安装sponge,点击查看安装sponge说明

打开生成代码界面

安装完成后,启动sponge UI服务:

sponge run

在本地浏览器访问 http://localhost:24631,进入sponge的UI界面,点击左边菜单栏【SQL】--> 【创建web服务】,填写mysql dsn地址,点击获取表名,然后选择表名(可多选),接着填写其他参数,鼠标放在问号?位置查看参数说明,填写完参数后,点击按钮下载代码生成web服务完整项目代码,如下图所示:

web-http

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

# 生成swagger文档
make docs

# 编译和运行服务
make run

在浏览器打开 http://localhost:8080/swagger/index.html,在页面上进行增删改查、自定义条件分页查询的api接口测试,如下图所示:

web-http-swagger

就这样在UI界面生成代码和几行命令就完成了一个web后端服务,随着业务增加,需要添加更多mysql表的增删改查接口,在sponge的UI界面,点击左边菜单栏【Public】--> 【生成handler CRUD代码】,填写参数,然后点击按钮下载代码

web-http-handler

解压代码,把internal目录移动到web服务目录代码中,然后执行同样的命令:

# 生成swagger文档
make docs

# 编译和运行服务
make run

接着在浏览器打开 http://localhost:8080/swagger/index.html对新增的api接口进行测试。


sponge开发文档

更多使用sponge开发web项目的详情,点击查看sponge开发文档


使用示例


视频教程


结语

sponge是一个帮助你轻松快速开发web应用的好帮手,通过自动生成代码减少人工编写大量代码,让开发者只需专注编写业务逻辑代码,甚至实现零代码开发,极大提高开发效率和降低开发项目周期。不少开发者使用sponge开发的web服务已在生产环境中稳定运行,如果你正在寻找高效率开发web服务框架,sponge是一个不错的选择。



gvison
9 声望3 粉丝