无需编写代码即可生成完整的Web服务项目代码(gin框架),低代码也能玩转服务端开发 - Golang实战

无需编写代码即可生成完整的Web服务项目代码(gin框架),低代码也能玩转服务端开发 - Golang实战 介绍一款新的代码生成工具 sponge,它无缝结合了生成的CRUD接口代码生成的web服务代码(无需添加或修改任何代码),并包含了分页条件查询、缓存等功能。

github: GitHub - zhufuyi/sponge: sponge 是一个强大的代码生成工具,一个基于 gin 和 gRPC 的微服务框架。

安装 sponge 后,通过执行以下命令打开 UI

sponge run

en_web-http

web 服务代码主要由 gingormgo-redis 等常用库组成。它还包含了 swagger 文档、测试代码、常见服务治理功能的代码、构建部署脚本等。

切换到 web 目录并执行命令:

# 生成 swagger 文档
make docs

# 编译并启动 web 服务
make run

在浏览器中打开 localhost:8080/swagger/index.html,即可对表进行增、删、改、查操作。


更多关于无需编写代码即可生成完整的Web服务项目代码(gin框架),低代码也能玩转服务端开发 - Golang实战的实战教程也可以访问 https://www.itying.com/category-94-b0.html

1 回复

更多关于无需编写代码即可生成完整的Web服务项目代码(gin框架),低代码也能玩转服务端开发 - Golang实战的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


Sponge 确实是一个强大的 Go 语言代码生成工具,它极大地简化了基于 Gin 框架的 Web 服务开发流程。通过 sponge,开发者可以快速生成包含完整 CRUD 接口、分页查询、缓存集成(如 go-redis)以及 Swagger 文档的生产级项目代码,无需手动编写基础代码。

以下是一个典型的使用示例,展示如何通过 sponge 生成一个完整的用户管理 Web 服务:

  1. 首先,安装 sponge 并启动 UI 界面(如你所述):
# 安装 sponge
go install github.com/zhufuyi/sponge/cmd/sponge@latest

# 启动 UI 界面
sponge run
  1. 在 UI 界面中,选择生成 Web 服务代码。例如,配置一个用户表(user)的 CRUD 接口,包括字段如 idnameemail。sponge 会自动生成以下关键代码文件:

    • internal/model/user.go:GORM 模型定义。
    • internal/cache/user.go:Redis 缓存逻辑。
    • internal/dao/user.go:数据访问层(DAO)。
    • internal/handler/user.go:Gin 路由和处理函数。
    • internal/service/user.go:业务逻辑层。
  2. 生成的 handler 代码示例(自动包含分页查询和缓存):

// internal/handler/user.go
package handler

import (
    "net/http"
    "github.com/gin-gonic/gin"
    "your_project/internal/service"
)

type userHandler struct {
    userService service.UserService
}

func NewUserHandler() *userHandler {
    return &userHandler{
        userService: service.NewUserService(),
    }
}

// GetUserByID 处理获取用户详情的请求
func (h *userHandler) GetUserByID(c *gin.Context) {
    id := c.Param("id")
    user, err := h.userService.GetByID(c.Request.Context(), id)
    if err != nil {
        c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
        return
    }
    c.JSON(http.StatusOK, user)
}

// ListUsers 处理分页列表查询
func (h *userHandler) ListUsers(c *gin.Context) {
    page := c.DefaultQuery("page", "1")
    size := c.DefaultQuery("size", "10")
    users, total, err := h.userService.List(c.Request.Context(), page, size)
    if err != nil {
        c.JSON(http.StatusInternalServerError, gin.H{"error": err.Error()})
        return
    }
    c.JSON(http.StatusOK, gin.H{"data": users, "total": total})
}
  1. 生成后,切换到项目目录并启动服务
# 生成 Swagger 文档
make docs

# 编译并运行 Web 服务
make run
  1. 访问 Swagger 界面localhost:8080/swagger/index.html)进行测试,可以直接对 user 表执行增删改查操作。sponge 自动生成的代码已集成 Gin 路由、GORM 数据库操作、go-redis 缓存以及请求验证,无需额外修改。

这个工具显著降低了 Go Web 服务的开发门槛,特别适合快速构建原型或标准化微服务。通过 sponge,开发者能专注于业务逻辑而非重复的样板代码,提升开发效率。

回到顶部