在 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 的值请参考: 参考的值

你可能感兴趣的:(golang,开发语言,后端)