簡體   English   中英

如何使用 Golang go-playground/validator 將驗證鏈接在一起?

[英]How to chain validations together using Golang go-playground/validator?

我正在為 REST API 服務器使用https://github.com/go-playground/validator 我對具有不同驗證要求的不同端點使用相同的結構。 例如, /users/login只需要emailpassword 但是,要創建用戶,需要更多信息,例如firstName

所以我覺得用struct tag來驗證不是很方便。 按照本示例中的描述檢查變量似乎更合適。 但是我遇到了兩個問題:

  1. 我正在同時檢查多個。 有沒有辦法將一系列驗證鏈接在一起? 檢查結構中的每個變量然后檢查錯誤會使編碼和閱讀變得更加困難。

  2. 錯誤對象真的是空的。 例如,檢查是否需要電子郵件僅將err.Tag()err.ActualTag()required ,將err.Kind()err.Type()string而沒有其他內容。 驗證器是否提供任何使這更方便的東西?

我使用ozzo-validation 它使用普通的編程結構而不是容易出錯的結構標記來指定應如何驗證數據。 我建議您為每個用例(請求)定義不同的驗證函數/方法。

func ValidateLogin(req) {
err := validation.Validate(req.Username,
        validation.Required,       // 
        is.Email)
...
}

func ValidateRegister(req) {
...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM