Gin的中间件和Uri
Posted Harris-H
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gin的中间件和Uri相关的知识,希望对你有一定的参考价值。
Gin的中间件和Uri
// Default 使用 Logger 和 Recovery 中间件
r := gin.Default()
//不使用默认中间件
r := gin.New()
Logger中间件就是控制台终端打印的日志,Recovery中间件就是发生panic或者异常时会自动捕获并返回给浏览器一个500错误等错误响应的中间件。
只绑定 url 查询字符串
package main
import (
"log"
"github.com/gin-gonic/gin"
)
type Person struct {
Name string `form:"name"`
Address string `form:"address"`
}
func main() {
route := gin.Default()
route.Any("/testing", startPage)
route.Run(":8085")
}
func startPage(c *gin.Context) {
var person Person
if c.ShouldBindQuery(&person) == nil {
log.Println("====== Only Bind By Query String ======")
log.Println(person.Name)
log.Println(person.Address)
}
c.String(200, "Success")
}
也就是说对于post请求中的表单数据会忽略,而只绑定查询字符串中的数据。
Postman模拟
绑定Uri
package main
import "github.com/gin-gonic/gin"
type Person struct {
ID string `uri:"id" binding:"required,uuid"`
Name string `uri:"name" binding:"required"`
}
func main() {
route := gin.Default()
route.GET("/:name/:id", func(c *gin.Context) {
var person Person
if err := c.ShouldBindUri(&person); err != nil {
c.JSON(400, gin.H{"msg": err})
return
}
c.JSON(200, gin.H{"name": person.Name, "uuid": person.ID})
})
route.Run(":8088")
}
结果
以上是关于Gin的中间件和Uri的主要内容,如果未能解决你的问题,请参考以下文章