亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請求正文驗證

請求正文驗證

Go
當年話下 2023-07-31 16:21:02
我正在使用 gin 來處理請求,但我在驗證請求正文中的數據時遇到問題,例如type User struct {    Username  string  `json:"username" binding:"required,min=1,max=16"`    Name  string  `json:"name" binding:"required,min=1,max=16"`    Password string `json:"password" binding:"required,min=1,max=16"`}func loginHandler(ctx *gin.Context) {    var user User    if err := ctx.ShouldBindJSON(&user); err != nil {        ctx.JSON(http.StatusBadRequest, gin.H{            "error": err.Error(),        })}如何處理帶有空格(如"  username "或 )的值" John   Doe "?據我所知,不可能在 gin 的驗證器中使用正則表達式。Golang 中請求正文驗證的最佳實踐或模式是什么?
查看完整描述

1 回答

?
慕標琳琳

TA貢獻1830條經驗 獲得超9個贊

注冊驗證程序包:https://godoc.org/gopkg.in/validator.v2

// main.go

package main


import (

    "net/http"


    "github.com/gin-gonic/gin"

    "gopkg.in/validator.v2"

)


type User struct {

    Username string `json:"username" validate:"min=1,max=16,regexp=^[a-zA-Z]*$"`

    Name     string `json:"name" validate:"min=1,max=16"`

    Password string `json:"password" validate:"min=1,max=16"`

}


func loginHandler(ctx *gin.Context) {

    var user User

    if err := ctx.ShouldBindJSON(&user); err != nil {

        ctx.JSON(http.StatusBadRequest, gin.H{

            "error": err.Error(),

        })

    }


    if err := validator.Validate(user); err != nil {

        ctx.JSON(http.StatusBadRequest, gin.H{

            "error": err.Error(),

        })

    }

}


func main() {

    r := gin.Default()

    r.POST("/login", loginHandler)

    r.Run()

}

請求:POST:本地主機:8080/登錄


{

    "username":"123123",

    "name":"golang",

    "password":"gin"

}

回復:


{

    "error": "Username: regular expression mismatch "

}


查看完整回答
反對 回復 2023-07-31
  • 1 回答
  • 0 關注
  • 178 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號