GoFrame框架數據校驗之校驗結果Error接口對象

上一篇文章介紹瞭 GoFrame數據校驗之校驗對象 | 校驗結構體 ,得到瞭大傢積極的反饋。

再接再厲,這篇總結分享:GoFrame數據校驗之校驗結果總結分享。

基本介紹

校驗結果為一個Error接口對象。當數據規則校驗成功時,校驗方法返回的結果為nil

當數據規則校驗失敗時,返回的該對象是包含結構化的層級map,包含多個字段及其規則及對應錯誤信息,以便於接收端能夠準確定位錯誤規則。

方法示例

首先我們看一下Error的數據結構:

type Error interface {
    Current() error
    Error() string
    FirstItem() (key string, messages map[string]string)
    FirstRule() (rule string, err string)
    FirstString() (err string)
    Items() (items []map[string]map[string]string)
    Map() map[string]string
    Maps() map[string]map[string]string
    String() string
    Strings() (errs []string) 
} 

註意問題

可以通過Maps()方法獲得該原始錯誤信息數據結構map

在項目開發中,我們可以通過Error接口的其他方法來獲取特定的錯誤信息。

當我們並不關心具體出錯的校驗規則時,可以使用String方法,直接返回所有的錯誤信息。

方法詳解

獲取校驗結果的值可以通過多個校驗結果方法獲取:

Items()在順序性校驗中將會按照校驗規則返回校驗錯誤的信息數組。其順序性隻有使用順序校驗規則時有效,否則返回的結果是隨機的。

Map() 會返回FirstItem中的出錯規則及對應的錯誤信息map

Maps() 會返回所有的出錯鍵名及對應的出錯規則及對應的錯誤信息(map[string]map[string]string)。

String() 會返回所有的錯誤信息,構成一條字符串返回,多個規則錯誤信息之間以;符號連接。其順序性隻有使用順序校驗規則時有效,否則返回的結果是隨機的。我們會比較常用。

Strings 會返回所有的錯誤信息,構成[]string類型返回。其順序性隻有使用順序校驗規則時有效,否則返回的結果是隨機的。

FirstItem 在有多個鍵名/屬性校驗錯誤的時候,用以獲取出錯的第一個鍵名,以及其對應的出錯規則和錯誤信息。其順序性隻有使用順序校驗規則時有效,否則返回的結果是隨機的。

FirstRule 會返回FirstItem中得第一條出錯的規則及錯誤信息。其順序性隻有使用順序校驗規 則時有效,否則返回的結果是隨機的。

FirstString 會返回FirstRule中得第一條規則錯誤信息。其順序性隻有使用順序校驗規則時有效,否則返回的結果是隨機的。

進階

因為gvalid.Error實現瞭Current() error接口,因此可以通過gerror.Current方法獲取它的第一條錯誤信息,這在接口校驗失敗時返回錯誤信息非常方便。

註意問題

數據校驗時存在順序性校驗和非順序性校驗,這會對獲取第一條錯誤信息的結果產生影響。

關於順序與非順序性校驗,可以關註我,後面的文章中會更新說明。

總結

這篇文章為大傢介紹瞭GoFrame gvalid 校驗結果相關的知識點:

校驗結果為一個Error接口對象。當數據規則校驗成功時,校驗方法返回的結果為nil

當數據規則校驗失敗時,返回的該對象是包含結構化的層級map,包含多個字段及其規則及對應錯誤信息,以便於接收端能夠準確定位錯誤規則。

更多關於GoFrame數據校驗Error接口對象的資料請關註WalkonNet其它相關文章!

推薦閱讀: