在 go 的项目中使用验证器
1:使用validate 包验证:
安装包: go get github.com/go-playground/validator/v10
package controller
import (
"fmt"
"github.com/gin-gonic/gin"
"github.com/go-playground/validator/v10"
"net/http"
)
// 使用 type OrderController struct 来区别同一个包下面出现相同的func 函数
type OrderController struct {
}
//获取搜索的参数
type Order struct {
Id int `json:"id" validate:"required"` // 使用validate 的包进行验证
Name string `json:"name" validate:"required"`
OrderId int `json:"orderId" validate:"required"`
Email string `json:"email" validate:"email"`
}
type Search struct {
Cid int `json:"cid"`
Name string `json:"name"`
}
func (o OrderController) GetList(c *gin.Context) {
v := validator.New()
// 从请求中获取JSON数据并绑定到Order结构体
var order Order
if err := c.ShouldBindJSON(&order); err != nil { //将参数进行验证 并给order 结构体
c.JSON(http.StatusBadRequest, gin.H{"jsonerr": err.Error()})
return
}
// 使用validator验证Order结构体数据
err := v.Struct(order)
if err != nil {
c.JSON(http.StatusBadRequest, gin.H{"vlidateerror": err.Error()})
return
}
// 打印接收到的参数,这里可以根据实际需求进行后续处理,如查询数据库等。
fmt.Printf("Received order: %+v", order)
c.JSON(http.StatusOK, gin.H{"message": "Successfully received order"})
}
validate 的值请参考: 参考的值