二-gin-web框架学习常用路由参数解析

获取”/user/:name”的name参数
      router.GET("/user/:name", func(c *gin.Context) {
                    name := c.Param("name")
                    c.JSON(http.StatusOK,gin.H{"name":name})
                })
  • curl http://127.0.0.1:9000/user/lcd
  • 返回结果: {“name”:lcd}
/params?firstname=lcd&lastname=dong
    router.GET("/params", func(context *gin.Context) {
            firstname := context.DefaultQuery("firstname","defaultName")
            lastname := context.Query("lastname")
            context.JSON(http.StatusOK,gin.H{
                "firstName":firstname,
                "lastName":lastname,
            })
        })
        
  • /params?firstname=lcd&lastname=dong
  • 返回结果: {“lastName”,lin,”lastName”:dong}
  • 对于context.DefaultQuery(key,defaultValue): 如果没有指定字段,则给定key设置一个默认值,在分页
Multipart/Urlencoded Form
    router.POST("/form_post", func(c *gin.Context) {
            name := c.PostForm("name")
            nick := c.DefaultPostForm("age", "90")
    
            c.JSON(200, gin.H{
                "name": name,
                "age":    nick,
            })
        })
  • 测试

post application/Json格式

type User struct {

Username string `form:"username" json:"username" binding:"required"`
Passwd   string `form:"passwd" json:"passwd" bdinding:"required"`
Age      int    `form:"age" json:"age"`

}


router.POST("/json", func(context *gin.Context) {
        var user User
        context.BindJSON(&user)
        context.JSON(200,gin.H{"data":user})
    })
    
  • 测试

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理