前言
依据使用者的反馈,对开源我的项目:go-gin-api 新增两个小性能。
两个小性能都与语言包无关:
- 性能 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,下载最新代码用起来吧。
举荐浏览
- 对于解决电商零碎订单状态的流转,分享下我的技术计划(附带源码)
- 我是怎么写 Git Commit message 的?