四时宝库

程序员的知识宝库

Go Web教程24:Gin最佳实践(go web编程)

概述

前面讲了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访问,所以才这样写得。

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接