文章目录:
-
前言
-
接口返回的错误信息支持中英文
-
代码位置
-
使用方式
-
错误信息自定义
-
参数验证的错误信息支持中英文
-
代码位置
-
使用方式
-
错误信息语言包
-
示例
-
小结
-
推荐阅读
前言
根据使用者的反馈,对开源项目:go-gin-api[1] 新增两个小功能。
两个小功能都与语言包有关:
-
功能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[2]
-
中文: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,下载最新代码用起来吧。
推荐阅读
参考资料
go-gin-api: https://github.com/xinliangnote/go-gin-api
[2]go-playground/validator: https://github.com/go-playground/validator
文章评论