根據使用者反饋,對開源項目 go-gin-api 新增兩個功能


前言

根據使用者的反饋,對開源項目:go-gin-api GitHub stars 新增兩個小功能。

兩個小功能都與語言包有關:

  • 功能1:接口返回的錯誤信息支持中英文;
  • 功能2:參數驗證的錯誤信息支持中英文;

我的實現方式是在項目安裝的時候,選擇 語言,然后項目中根據選擇的語言進行輸出對應的中英文,如下圖。

接口返回的錯誤信息支持中英文

代碼位置

項目代碼位置:internal/pkg/code

使用方式

// 與原來使用方式一致
code.Text(code.ServerError) 

錯誤信息自定義

  • 中文:internal/pkg/code/zh-cn.go
  • 英文:internal/pkg/code/en-us.go

如果你想新增/編輯錯誤信息,在對應文件操作即可。

參數驗證的錯誤信息支持中英文

代碼位置

項目代碼位置:internal/pkg/validation

使用方式

req := new(createRequest)
if err := ctx.ShouldBindForm(req); err != nil {
    fmt.Println(validation.Error(err))
}

錯誤信息語言包

錯誤信息語言包使用的是 go-playground/validator

  • 中文:v10/translations/zh
  • 英文:v10/translations/en

示例

Username string `form:"username" binding:"required"` // 用戶名
Nickname string `form:"nickname" binding:"required"` // 昵稱

未使用語言包

// 錯誤信息
createRequest.Username' Error:Field validation for 'Username' failed on the 'required' tag\nKey: 'createRequest.Nickname' Error:Field validation for 'Nickname' failed on the 'required' tag"

使用中文語言包

// 錯誤信息
Username為必填字段;Nickname為必填字段;

使用英文語言包

// 錯誤信息
Username is a required field;Nickname is a required field;

小結

以上,希望能對你有所幫助,代碼已提交到 GitHub,下載最新代碼用起來吧。

推薦閱讀


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM