gofream框架03 參數(shù)綁定

請求參數(shù)綁定

// 參數(shù)綁定到結構體
s.BindHandler("/bindtest", func(r *ghttp.Request) {
    type User struct{
        UserName string `json:"username" params:"username"`
        Password string `json:"password" params:"password"`
    }

    var user = new(User)
    r.GetRequestToStruct(user)
    r.Response.Write(user)
})

數(shù)據(jù)校驗

https://goframe.org/util/gvalid/index

// 請求參數(shù)綁定+數(shù)據(jù)校驗示例
s.BindHandler("/valid", func(r *ghttp.Request) {
    type Info struct{
        Name string `json:"name" params:"name" gvalid:"username@required|length:6,30"`
        Age int `json:"age" params:"age" gvalid:"age@required|min:2"`
    }

    info := new(Info)
    r. GetRequestToStruct(info)

    // 數(shù)據(jù)校驗
    if err := gvalid.CheckStruct(info, nil); err != nil{
        r.Response.WriteJson(err.Maps())
    } else {
        r.Response.WriteJson(info)
    }
})

數(shù)據(jù)校驗返回code等字段

s.BindHandler("/valid", func(r *ghttp.Request) {
    type Info struct{
        Name string `json:"name" params:"name" gvalid:"name@required|length:6,30"`
        Age int `json:"age" params:"age" gvalid:"age@required|min:2"`
    }

    info := new(Info)
    r. GetRequestToStruct(info)

    // 數(shù)據(jù)校驗
    if err := gvalid.CheckStruct(info, nil); err != nil{
        // 驗證不通過
        data := make(map[string]interface{})
        data["code"] = 500
        data["err"] = err.Maps()
        data["data"] = nil

        r.Response.WriteJson(data)
    } else {
        // 驗證通過
        data := make(map[string]interface{})
        data["code"] = 200
        data["err"]= nil
        data["data"] = info
        
        r.Response.WriteJson(data)
    }
})
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 對于java中的思考的方向,1必須要看前端的頁面,對于前端的頁面基本的邏輯,如果能理解最好,不理解也要知道幾點。 ...
    神尤魯?shù)婪?/span>閱讀 901評論 0 0
  • # Python 資源大全中文版 我想很多程序員應該記得 GitHub 上有一個 Awesome - XXX 系列...
    小邁克閱讀 3,127評論 1 3
  • 背景: 閱讀新聞 12C CDB模式下RMAN備份與恢復 [日期:2016-11-29] 來源:Linux社區(qū) 作...
    陽屯okyepd閱讀 3,853評論 0 7
  • SpringMVC原理分析 Spring Boot學習 5、Hello World探究 1、POM文件 1、父項目...
    jack_jerry閱讀 1,485評論 0 1
  • 阿里巴巴 JAVA 開發(fā)手冊 1 / 32 Java 開發(fā)手冊 版本號 制定團隊 更新日期 備 注 1.0.0 阿...
    糖寶_閱讀 7,888評論 0 5

友情鏈接更多精彩內(nèi)容