首頁 > 軟體

GoFrame框架資料校驗之校驗結果Error介面物件

2022-06-20 22:00:12

上一篇文章介紹了 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介面物件的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com