binding data & validate
binding data
- 新增
Person
结构blog-entity.go
package entity type Person struct { FirstName string `json:"firstName"` LastName string `json:"lastName"` Age int `json:"age"` Email string `json:"email"` } type BlogEntity struct { Title string `json:"title"` Description string `json:"description"` URL string `json:"url"` Author Person `json:"author"` }
- 为每个数据都加上binding
blog-entity.go
package entity type Person struct { FirstName string `json:"firstName" binding:"required"` LastName string `json:"lastName" binding:"required"` Age int `json:"age" binding:"required,gte=1,lte=200"` Email string `json:"email" binding:"required,email"` } type BlogEntity struct { Title string `json:"title" binding:"required,min=2,max=20"` Description string `json:"description" binding:"required,max=200"` URL string `json:"url" binding:"required,url"` Author Person `json:"author" binding:"required"` }
- 修改
blog-controller.go
package controller import ( "learn-gin/entity" "learn-gin/service" "github.com/gin-gonic/gin" ) type BlogController interface { FindAll() []entity.BlogEntity Save(*gin.Context) error } type blogController struct { bs service.BlogService } func New(bs service.BlogService) BlogController { return &blogController{ bs: bs, } } func (bc *blogController) FindAll() []entity.BlogEntity { return bc.bs.FindAll() } func (bc *blogController) Save(c *gin.Context) error