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

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

驗證未標記的 Go 結構的最佳方法是什么

驗證未標記的 Go 結構的最佳方法是什么

Go
莫回無 2022-11-28 10:19:28
每當我創建一個 Go 結構時,我都會使用結構標簽,以便我可以使用go-playground/validator輕松驗證它——例如:type DbBackedUser struct {    Name sql.NullString `validate:"required"`    Age  sql.NullInt64  `validate:"required"`}我目前正在與第三方集成。他們提供了一個 Go SDK,但是 SDK 中的結構不包含validate標簽,他們不能/不愿意添加標簽。由于我的團隊的數據完整性要求,通過這個第三方 SDK 引入的所有數據都必須經過驗證才能使用。問題是似乎沒有辦法在不在結構上定義驗證標記的情況下使用 Validator 包來驗證結構。我們目前提出的解決方案是將 SDK 結構中的所有數據映射到我們自己的結構中(在其上定義了驗證標簽),對這些結構執行驗證,然后,如果驗證通過,我們可以直接使用來自SDK 的結構(我們需要使用 SDK 定義的結構在我們的系統周圍傳遞數據——因此這些帶有驗證標簽的結構只能用于驗證)。這里的問題是我們必須維護這些僅用于驗證的結構,而且結構之間的映射具有時間和內存成本。在這種情況下是否有更好的方法來處理結構驗證?
查看完整描述

1 回答

?
MMTTMM

TA貢獻1869條經驗 獲得超4個贊

替代技術是使用驗證構造函數:NewFoobar(raw []byte) (Foobar, error)

但我看到 go-validator 通過“結構級驗證”支持您的案例:

https://github.com/go-playground/validator/blob/master/_examples/struct-level/main.go


查看完整回答
反對 回復 2022-11-28
  • 1 回答
  • 0 關注
  • 126 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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