searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

golang中的gin框架的介绍与搭建

2023-08-30 01:35:11
38
0

1.1 Gin框架的介绍

         gin框架是一个golang语言编写的web框架,近年来,由于golang语言作为后端开发语言的火爆,gin框架的作用也越来越突出,gin框架作为golang语言的主流web框架,有着简单,轻量,性能优越等特点

1.2 gin框架的安装和运行一个demo

1.2.1 安装Golang,并配置golang环境,确保golang环境正确可用

1.2.2 下载并安装gin

具体命令为:go get -u github.com/gin-gonic/gin

1.2.3 进入项目中的demo根目录,利用golang的mod管理进行初始化工作,命令为:

go mod init demo

1.2.4 定义一个main文件,写下相关的POST和GET请求

package main

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

func main() {
    r := gin.Default()

    r.GET("/test/get", func(c *gin.Context) {
        c.JSON(200, gin.H{
            "message": "this is a test example",
        })
    })

    r.POST("/test/user/create", func(c *gin.Context) {
        var userInfo struct {
            Name string `json:"name"`
            Address string `json:"address"`
            Age string `json:"age"`
        } 

        if err := c.Bind(&userInfo); err == nil {
            c.JSON(200, gin.H{
               "message": "success"
            })
        } esle {
            c.JSON(500, gin.H{"error": err.Error()})
        }
    })

    r.Run(":8000")
}

1.2.5 本地运行gin文件

go run main.go

1.2.6浏览器访问

127.0.0.1:8000/test/get

1.3 gin框架的一些基本介绍

1.3.1 路由配置

路由这块gin框架遵循Restful原则,支持GET,POST,PUT,DELETE操作

1.3.1.1 GET请求参数获取

如果是GET请求参数为/test?testID=3011

用以下方法进行获取

r.GET("/test", func(c *gin.Context) {
    testId :=  c.Query("testID")
    c.JSON(200, gin.H{
      "testID": testId
    })
})

如果是GET url为/test/3011

按照以下方法获取

r.GET("/test", func(c *gin.Context) {
    testId :=  c.Param("id")
    c.JSON(200, gin.H{
      "testID": testId
    })
})

如果是多个参数,可以用获取结构体的方式

/test?testID=3011&testName=test

r.GET("/test", func(c *gin.Context) {
    var testInfo struct {
    TestID string `json:"testID"`
TestName string `json:"testName"`
}
if err := c.ShouldBind(&testInfo); err == nil {
            c.JSON(200, gin.H{
               "message": "success"
            })
    } esle {
            c.JSON(500, gin.H{"error": err.Error()})
    }
})

POST请求获取参数主要有两种,一种是通过表单,一种是绑定结构体

绑定结构体和get类似

r.POST("/test", func(c *gin.Context) {
    var testInfo struct {
        TestID string `json:"testID"`
        TestName string `json:"testName"`
    }
    if err := c.ShouldBind(&testInfo); err == nil {
            c.JSON(200, gin.H{
               "message": "success"
            })
    } esle {
            c.JSON(500, gin.H{"error": err.Error()})
    }
})

获取form表单数据如下图所示

r.POST("/test", func(c *gin.Context) {
  testId :=  c.PostForm("testID")
testName := c.PostForm("testName")
c.JSON(200, gin.H{
   “testID”:testId, "testName":testName
})
})

0条评论
0 / 1000
l****n
2文章数
0粉丝数
l****n
2 文章 | 0 粉丝
l****n
2文章数
0粉丝数
l****n
2 文章 | 0 粉丝
原创

golang中的gin框架的介绍与搭建

2023-08-30 01:35:11
38
0

1.1 Gin框架的介绍

         gin框架是一个golang语言编写的web框架,近年来,由于golang语言作为后端开发语言的火爆,gin框架的作用也越来越突出,gin框架作为golang语言的主流web框架,有着简单,轻量,性能优越等特点

1.2 gin框架的安装和运行一个demo

1.2.1 安装Golang,并配置golang环境,确保golang环境正确可用

1.2.2 下载并安装gin

具体命令为:go get -u github.com/gin-gonic/gin

1.2.3 进入项目中的demo根目录,利用golang的mod管理进行初始化工作,命令为:

go mod init demo

1.2.4 定义一个main文件,写下相关的POST和GET请求

package main

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

func main() {
    r := gin.Default()

    r.GET("/test/get", func(c *gin.Context) {
        c.JSON(200, gin.H{
            "message": "this is a test example",
        })
    })

    r.POST("/test/user/create", func(c *gin.Context) {
        var userInfo struct {
            Name string `json:"name"`
            Address string `json:"address"`
            Age string `json:"age"`
        } 

        if err := c.Bind(&userInfo); err == nil {
            c.JSON(200, gin.H{
               "message": "success"
            })
        } esle {
            c.JSON(500, gin.H{"error": err.Error()})
        }
    })

    r.Run(":8000")
}

1.2.5 本地运行gin文件

go run main.go

1.2.6浏览器访问

127.0.0.1:8000/test/get

1.3 gin框架的一些基本介绍

1.3.1 路由配置

路由这块gin框架遵循Restful原则,支持GET,POST,PUT,DELETE操作

1.3.1.1 GET请求参数获取

如果是GET请求参数为/test?testID=3011

用以下方法进行获取

r.GET("/test", func(c *gin.Context) {
    testId :=  c.Query("testID")
    c.JSON(200, gin.H{
      "testID": testId
    })
})

如果是GET url为/test/3011

按照以下方法获取

r.GET("/test", func(c *gin.Context) {
    testId :=  c.Param("id")
    c.JSON(200, gin.H{
      "testID": testId
    })
})

如果是多个参数,可以用获取结构体的方式

/test?testID=3011&testName=test

r.GET("/test", func(c *gin.Context) {
    var testInfo struct {
    TestID string `json:"testID"`
TestName string `json:"testName"`
}
if err := c.ShouldBind(&testInfo); err == nil {
            c.JSON(200, gin.H{
               "message": "success"
            })
    } esle {
            c.JSON(500, gin.H{"error": err.Error()})
    }
})

POST请求获取参数主要有两种,一种是通过表单,一种是绑定结构体

绑定结构体和get类似

r.POST("/test", func(c *gin.Context) {
    var testInfo struct {
        TestID string `json:"testID"`
        TestName string `json:"testName"`
    }
    if err := c.ShouldBind(&testInfo); err == nil {
            c.JSON(200, gin.H{
               "message": "success"
            })
    } esle {
            c.JSON(500, gin.H{"error": err.Error()})
    }
})

获取form表单数据如下图所示

r.POST("/test", func(c *gin.Context) {
  testId :=  c.PostForm("testID")
testName := c.PostForm("testName")
c.JSON(200, gin.H{
   “testID”:testId, "testName":testName
})
})

文章来自个人专栏
网络架构
2 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0