前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >根据使用者反馈,对开源项目 go-gin-api 新增两个功能

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

作者头像
新亮
发布2021-07-20 12:44:33
3260
发布2021-07-20 12:44:33
举报
文章被收录于专栏:新亮笔记新亮笔记

文章目录:

  • 前言
  • 接口返回的错误信息支持中英文
    • 代码位置
    • 使用方式
    • 错误信息自定义
  • 参数验证的错误信息支持中英文
    • 代码位置
    • 使用方式
    • 错误信息语言包
    • 示例
  • 小结
  • 推荐阅读

前言

根据使用者的反馈,对开源项目:go-gin-api[1] 新增两个小功能。

两个小功能都与语言包有关:

  • 功能1:接口返回的错误信息支持中英文;
  • 功能2:参数验证的错误信息支持中英文;

我的实现方式是在项目安装的时候,选择 语言,然后项目中根据选择的语言进行输出对应的中英文,如下图。

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

代码位置

项目代码位置:internal/pkg/code

使用方式

代码语言:javascript
复制
// 与原来使用方式一致
code.Text(code.ServerError) 

错误信息自定义

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

如果你想新增/编辑错误信息,在对应文件操作即可。

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

代码位置

项目代码位置:internal/pkg/validation

使用方式

代码语言:javascript
复制
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

示例

代码语言:javascript
复制
Username string `form:"username" binding:"required"` // 用户名
Nickname string `form:"nickname" binding:"required"` // 昵称

未使用语言包

代码语言:javascript
复制
// 错误信息
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"

使用中文语言包

代码语言:javascript
复制
// 错误信息
Username为必填字段;Nickname为必填字段;

使用英文语言包

代码语言:javascript
复制
// 错误信息
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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 新亮笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 接口返回的错误信息支持中英文
    • 代码位置
      • 使用方式
        • 错误信息自定义
        • 参数验证的错误信息支持中英文
          • 代码位置
            • 使用方式
              • 错误信息语言包
                • 示例
                • 小结
                • 推荐阅读
                  • 参考资料
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档