前言
依据使用者的反馈,对开源我的项目: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 的?