根据使用者反馈,对开源项目 go-gin-api 新增两个功能

2021年7月11日 235点热度 0人点赞 0条评论

文章目录:

  • 前言

  • 接口返回的错误信息支持中英文

    • 代码位置

    • 使用方式

    • 错误信息自定义

  • 参数验证的错误信息支持中英文

    • 代码位置

    • 使用方式

    • 错误信息语言包

    • 示例

  • 小结

  • 推荐阅读

前言

根据使用者的反馈,对开源项目: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,下载最新代码用起来吧。

推荐阅读

参考资料

[1]

go-gin-api: https://github.com/xinliangnote/go-gin-api

[2]

go-playground/validator: https://github.com/go-playground/validator

图片

13220根据使用者反馈,对开源项目 go-gin-api 新增两个功能

root

这个人很懒,什么都没留下

文章评论