惜风不起、唯有努力!
Gin常见的几种传参及调用

Gin常见的几种传参及调用

Query参数:在URL中通过?后面的参数传递,可以使用gin.Context的Query()方法获取参数值。
func main() {
    r := gin.Default()
    r.GET("/user", func(c *gin.Context) {
        name := c.Query("name")
        age := c.Query("age")
        c.JSON(http.StatusOK, gin.H{
            "name": name,
            "age": age,
        })
    })
    r.Run(":8080")
}

Param参数:在URL中通过/:paramName的形式传递,可以使用gin.Context的Param()方法获取参数值。
func main() {
    r := gin.Default()
    r.GET("/user/:name/:age", func(c *gin.Context) {
        name := c.Param("name")
        age := c.Param("age")
        c.JSON(http.StatusOK, gin.H{
            "name": name,
            "age": age,
        })
    })
    r.Run(":8080")
}

Form参数:在HTTP请求的Body中传递,可以使用gin.Context的PostForm()方法获取参数值。
func main() {
    r := gin.Default()
    r.POST("/user", func(c *gin.Context) {
        name := c.PostForm("name")
        age := c.PostForm("age")
        c.JSON(http.StatusOK, gin.H{
            "name": name,
            "age": age,
        })
    })
    r.Run(":8080")
}

JSON参数:在HTTP请求的Body中传递JSON数据,可以使用gin.Context的BindJSON()方法将JSON数据绑定到指定的结构体上。
type User struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}
func main() {
    r := gin.Default()
    r.POST("/user", func(c *gin.Context) {
        var user User
        err := c.BindJSON(&user)
        if err != nil {
            c.JSON(http.StatusBadRequest, gin.H{"error": err.Error()})
            return
        }
        c.JSON(http.StatusOK, gin.H{
            "name": user.Name,
            "age": user.Age,
        })
    })
    r.Run(":8080")
}

发表回复

您的电子邮箱地址不会被公开。