![](/img/trans.png)
[英]How to test for validation error from go-playground/validator?
[英]How to chain validations together using Golang go-playground/validator?
我正在為 REST API 服務器使用https://github.com/go-playground/validator 。 我對具有不同驗證要求的不同端點使用相同的結構。 例如, /users/login
只需要email
和password
。 但是,要創建用戶,需要更多信息,例如firstName
。
所以我覺得用struct tag來驗證不是很方便。 按照本示例中的描述檢查變量似乎更合適。 但是我遇到了兩個問題:
我正在同時檢查多個。 有沒有辦法將一系列驗證鏈接在一起? 檢查結構中的每個變量然后檢查錯誤會使編碼和閱讀變得更加困難。
錯誤對象真的是空的。 例如,檢查是否需要電子郵件僅將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.