当前位置:实例文章 » 其他实例» [文章]Gin+Gorm练手小项目bubble清单企业级结构剖析

Gin+Gorm练手小项目bubble清单企业级结构剖析

发布人:shili8 发布时间:2025-01-31 06:53 阅读次数:0

**Gin + GORM 实践小项目: Bubble 清单**

在本文中,我们将使用 Gin 和 GORM 构建一个简单的企业级应用程序:Bubble 清单。这个应用程序允许用户创建、编辑和删除清单项。

###1.依赖安装首先,需要安装 Gin 和 GORM 的依赖:

gogo get -u github.com/gin-gonic/gingo get -u gorm.io/gorm


###2. 模型定义我们将使用 GORM 来定义我们的模型。首先,我们创建一个 `models` 包来存放我们的模型。

go// models/bubble.gopackage modelsimport "gorm.io/gorm"

type Bubble struct {
 gorm.Model Title string `json:"title"`
 Description string `json:"description"`
}


###3. 数据库连接接下来,我们需要配置数据库连接。我们使用 GORM 的内置支持来连接 MySQL。

go// main.gopackage mainimport (
 "gorm.io/driver/mysql"
 "gorm.io/gorm"

 "github.com/gin-gonic/gin"
)

func main() {
 // 数据库连接配置 dsn := "root:password@tcp(localhost:3306)/bubble?charset=utf8mb4&parseTime=True&loc=Local"

 // 初始化 GORM gormDB, err := gorm.Open(mysql.New(mysql.Config{
 DSN:322 dsn,
 }), &gorm.Config{})

 if err != nil {
 panic(err)
 }

 // 使用 GORM 的 AutoMigrate 来创建表结构 gormDB.AutoMigrate(&models.Bubble{})
}


###4. Gin 路由配置接下来,我们需要配置 Gin 的路由。我们将使用 Gin 的内置支持来定义路由。

go// main.gopackage mainimport (
 "github.com/gin-gonic/gin"
)

func main() {
 // 初始化 Gin router := gin.Default()

 // 定义路由 v1 := router.Group("/api/v1")
 {
 v1.GET("/bubbles", getBubbles)
 v1.POST("/bubbles", createBubble)
 v1.GET("/bubbles/:id", getBubble)
 v1.PUT("/bubbles/:id", updateBubble)
 v1.DELETE("/bubbles/:id", deleteBubble)
 }

 // 启动 Gin服务 router.Run(":8080")
}


###5. 控制器实现最后,我们需要实现控制器来处理路由请求。

go// controllers/bubble.gopackage controllersimport (
 "net/ />
 "github.com/gin-gonic/gin"
)

type BubbleController struct{}

func (c *BubbleController) getBubbles(ctx *gin.Context) {
 // 获取所有清单项 bubbles := []models.Bubble{}
 db := ctx.MustGet("db").(*gorm.DB)
 db.Find(&bubbles)

 // 返回清单项列表 ctx.JSON( bubbles)
}

func (c *BubbleController) createBubble(ctx *gin.Context) {
 // 获取清单项数据 var bubble models.Bubble err := ctx.BindJSON(&bubble)
 if err != nil {
 ctx.Status( /> return }

 // 创建清单项 db := ctx.MustGet("db").(*gorm.DB)
 db.Create(&bubble)

 // 返回创建的清单项 ctx.JSON( bubble)
}

func (c *BubbleController) getBubble(ctx *gin.Context) {
 // 获取清单项 ID id := ctx.Param("id")

 // 获取清单项 var bubble models.Bubble db := ctx.MustGet("db").(*gorm.DB)
 db.First(&bubble, id)

 // 返回清单项 if bubble.ID ==0 {
 ctx.Status( /> return }
 ctx.JSON( bubble)
}

func (c *BubbleController) updateBubble(ctx *gin.Context) {
 // 获取清单项 ID id := ctx.Param("id")

 // 获取清单项数据 var bubble models.Bubble err := ctx.BindJSON(&bubble)
 if err != nil {
 ctx.Status( /> return }

 // 更新清单项 db := ctx.MustGet("db").(*gorm.DB)
 db.Model(&models.Bubble{ID: id}).Updates(bubble)

 // 返回更新的清单项 ctx.JSON( bubble)
}

func (c *BubbleController) deleteBubble(ctx *gin.Context) {
 // 获取清单项 ID id := ctx.Param("id")

 // 删除清单项 db := ctx.MustGet("db").(*gorm.DB)
 db.Delete(&models.Bubble{ID: id})

 // 返回删除成功的状态码 ctx.Status( />}


###6. 测试最后,我们需要测试我们的应用程序。

bashgo test -v ./controllers/bubble.go


如果所有测试通过,则表示我们的应用程序正常工作。

以上就是使用 Gin 和 GORM 构建一个简单的企业级应用程序:Bubble 清单的步骤。

相关标签:iosiphonegin
其他信息

其他资源

Top