根据使用者反馈,对开源项目 go-gin-api 新增两个功能
前言
根据使用者的反馈,对开源项目:go-gin-api
新增两个小功能。
两个小功能都与语言包有关:
- 功能1:接口返回的错误信息支持中英文;
- 功能2:参数验证的错误信息支持中英文;
我的实现方式是在项目安装的时候,选择 语言,然后项目中根据选择的语言进行输出对应的中英文,如下图。
[tu_lang]
接口返回的错误信息支持中英文
代码位置
项目代码位置: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,下载最新代码用起来吧。
推荐阅读
根据使用者反馈,对开源项目 go-gin-api 新增两个功能的更多相关文章
- [转] 学习React Native必看的几个开源项目
http://www.lcode.org/study-react-native-opensource-one/ http://gold.xitu.io/entry/575f498c128fe10057 ...
- 【转】react-native开发混合App-github开源项目
http://www.lcode.org/study-react-native-opensource-one/ http://gold.xitu.io/entry/575f498c128fe10057 ...
- HoverTree开源项目已经实现管理员登录
ASP.NET开源项目HoverTree已经实现了管理员登录功能,最新代码请到以下网址查看.http://hovertree.com/down/ 点击Clone右边的Download就可以下载最新开发 ...
- 【Java经验分享篇01】小白如何开始学会看开源项目?
目录 前言 1.理解开源 1.1.什么是开源? 1.2.开源的定义 1.2.1.开源软件优点 1.2.2.经典开源软件案例 1.3.关于开源协议 1.3.1.如何选择开源协议 2.如何查找开源项目 2 ...
- 《云阅》一个仿网易云音乐UI,使用Gank.Io及豆瓣Api开发的开源项目
CloudReader 一款基于网易云音乐UI,使用GankIo及豆瓣api开发的符合Google Material Desgin阅读类的开源项目.项目采取的是Retrofit + RxJava + ...
- 顶级开源项目 Sentry 20.x JS-SDK 设计艺术(Unified API篇)
SDK 开发 顶级开源项目 Sentry 20.x JS-SDK 设计艺术(理念与设计原则篇) 顶级开源项目 Sentry 20.x JS-SDK 设计艺术(开发基础篇) 顶级开源项目 Sentry ...
- python实战===国内很简单实用的一些开源的api以及开源项目
原创 2017年03月25日 15:40:59 标签: api / 开源项目 / app / 免费接口 声明 以下所有 API 均由产品公司自身提供,本人皆从网络获取.获取与共享之行为或有侵犯产品 ...
- 瓣呀,一个基于豆瓣api仿网易云音乐的开源项目
整体采用material design 风格,本人是网易云音乐的粉丝,所以界面模仿了网页云音乐,另外,项目中尽量使用了5.0之后的新控件. 项目整体采用mvp+rxjava+retrofit 框架,使 ...
- gin+vue的前后端分离开源项目
该项目是gin+vue的前后端分离项目,使用gorm访问MySQL,其中vue前端是使用vue-element-admin框架简单实现的: go后台使用jwt,对API接口进行权限控制.此外,Web页 ...
随机推荐
- 【GIS风暴】30米分辨率地表覆盖数据GlobeLand30原始数据集简介及下载地址
数据集预览: GlobeLand30是30米空间分辨率全球地表覆盖数据,目前可供下载使用的有3年的数据:2000-2010-2020,本文主要讲述GlobeLand30的官网下载地址和数据集简介. 数 ...
- Freemaker生成复杂样式图片并无文件损坏的excel
Freemaker生成复杂样式图片并无文件损坏的excel 参考Freemarker整合poi导出带有图片的Excel教程,优化代码实现 功能介绍:1.支持Freemarker导出Excel的所有功能 ...
- Archlinux+win10双系统扩容Boot/ESP分区
环境 系统:Archlinux + Windowns10 双系统 软件:MiniTool Partition Wizard 免费版 + Diskgenius 免费版 分区:原ESP分区100M 原恢复 ...
- 解决1字节的UTF-8序列的字节1无效问题
学习路上碰到了这个异常 解决方法如下: 1.手动将< ? xml version="1.0" encoding="UTF-8"?>中的UTF-8更改 ...
- grasshopper DataTree 树形数据以及Graft Flatten Simplify的理解
问题的来源: 要在grasshopper里面输出 类似于二维数组的数据 但是在 grasshopper里的 C# 电池里面,无法显示 二维ArrayList里面的数据. 在 C# 电池里参考这个帖子: ...
- java中的Class.forName的作用
Class.forName有什么作用 Class.forName(xxx.xx.xx) 返回的是一个类 首先你要明白在java里面任何class都要装载在虚拟机上才能运行.这句话就是装载类用的(和ne ...
- Jittor 的Op, Var算子
Jittor 的Op, Var算子 要使用jittor训练模型,需要了解两个主要概念: Var:Jittor的基本数据类型 Operations:Jittor的算子与numpy类似 首先,开始使用Va ...
- adb基础命令
adb运行原理: 启动一个 adb 客户端时,此客户端首先检查是否有已运行的 adb 服务器进程.如果没有,它将启动服务器进程.当服务器启动时,它与本地 TCP 端口 5037 绑定,并侦听从 adb ...
- Jmeter(五十二) - 从入门到精通高级篇 - jmeter之跨线程组传递参数(详解教程)
1.简介 之前分享的所有文章都是只有一个线程组,而且参数的传递也只在一个线程组中,那么如果需要在两个线程组中传递参数,我们怎么做呢?宏哥今天就给小伙伴或者童鞋们讲解一下,如何实现在线程组之间传递参数. ...
- 1482. 制作 m 束花所需的最少天数
2021-05-09 LeetCode每日一题 链接:https://leetcode-cn.com/problems/minimum-number-of-days-to-make-m-bouquet ...