介绍
本文介绍如何在gin框架中绑定 Uri,即在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() {
r := gin.Default()
r.GET("/:name/:id", func(c *gin.Context) {
var person Person
if err := c.ShouldBindUri(&person); err != nil {
c.JSON(400, gin.H{"msg": err.Error()})
}
c.JSON(200, gin.H{"name": person.Name, "uuid": person.ID})
})
r.Run(":8080")
}
测试:
http://127.0.0.1:8080/thinkerou/987fbc97-4bed-5078-9f07-9141ba07c9f3
{
"name": "thinkerou",
"uuid": "987fbc97-4bed-5078-9f07-9141ba07c9f3"
}
http://127.0.0.1:8080/thinkerou/not-uuid
{"msg":"Key: 'Person.ID' Error:Field validation for 'ID' failed on the 'uuid' tag"}{"name":"thinkerou","uuid":"not-uuid"}