概述
前面讲了Go中,怎样集成Gin,怎样定义Gin中间件。
今天把我的Gin CURD最佳实践代码分享给大家
创建bannerApi.go,代码如下
func AddBanner(rg *gin.Engine) { r := rg.Group("/v1/banner/") r.POST("list", func(c *gin.Context) { var query BannerQuery if err := c.ShouldBindJSON(&query); err == nil { datas := service.ListBanner(query) c.JSON(http.StatusOK, gin.H{DATA: datas}) } else { c.JSON(http.StatusBadRequest, gin.H{ERRMSG: err}) } }) r.POST("get", func(c *gin.Context) { var json Id if err := c.ShouldBindJSON(&json); err == nil { BannerVo := service.GetBannerById(json.Id) c.JSON(http.StatusOK, gin.H{DATA: BannerVo}) } else { c.JSON(http.StatusBadRequest, gin.H{ERRMSG: err}) } }) r.POST("save", func(c *gin.Context) { var json BannerVo if err := c.ShouldBindJSON(&json); err == nil { ret := service.SaveBanner(json) RspJson(c, ret) } else { c.JSON(http.StatusBadRequest, gin.H{ERRMSG: err}) } }) r.POST("del", func(c *gin.Context) { var json Id if err := c.ShouldBindJSON(&json); err == nil { ret := service.DelBanner(json.Id) RspJson(c, ret) } else { c.JSON(http.StatusBadRequest, gin.H{ERRMSG: err}) } }) }
main.go调用bannerApi.go
app := gin.Default() app.Use(api.Cors()) api.AddBanner(app)
说明:
可能有些朋友要说,不够RESTful,。
是的,我是为了统一我的前端访问代码,都使用POST访问,所以才这样写得。