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

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

文章目录:

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

前言

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

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

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

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

416ffd77e5da4f78df958b659985a07a.png

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

代码位置

项目代码位置: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

目录
相关文章
|
1月前
|
人工智能 监控 中间件
如何用go语言实现类似AOP的功能
本文介绍了如何在 Go 语言中借鉴 Java 的 AOP(面向切面编程)思想,通过 Gin 框架的中间件和函数包装机制实现日志记录、权限校验等横切关注点与业务逻辑的解耦。内容涵盖 AOP 的优点、Go 中的实现方式、Gin 中间件与 AOP 的异同,帮助开发者提升代码模块化与可维护性。
|
2月前
|
存储 缓存 API
实现电商物流API的实时追踪功能
在电商时代,实时物流追踪已成为提升用户体验的核心功能。本文详解如何通过物流API实现包裹位置追踪、ETA计算及数据优化,涵盖API集成、后端处理、前端展示与性能调优,助力构建高效可靠的追踪系统,提升用户信任与满意度。
196 0
|
2月前
|
消息中间件 缓存 监控
电商API接口功能全景图:商品、订单、支付、物流如何无缝衔接?
在数字化商业中,API已成为电商核心神经系统。本文详解商品、订单、支付与物流四大模块的API功能,探讨其如何协同构建高效电商闭环,并展望未来技术趋势。
|
5月前
|
架构师 安全 物联网
Apipost vs Apifox:高效API协作的差异化功能解析
作为企业级API架构师,深度体验APIPost与Apifox后发现几大亮点功能。目录级参数配置避免全局污染;WebSocket消息分组提升长连接管理效率;Socket.IO支持解决特定协议需求;接口锁定保障团队协作安全。大型团队适合APIPost的细粒度管控,复杂物联网项目需WebSocket分组,维护遗留系统离不开Socket.IO支持,初创团队可按需灵活选择。这些特性显著优化开发协作质量。
|
5月前
|
API 开发者 Python
如何在API中实现搜索和过滤功能
本文介绍了如何为API添加搜索和过滤功能,使其更强大灵活。通过Flask示例,展示了按书名搜索、按作者或年份过滤书籍的方法,并结合两者实现复合查询。同时,提供了搜索不区分大小写、支持多过滤器组合、分页和输入验证等最佳实践。最后推荐了Apipost工具,它能简化API调试、负载测试及文档生成,提升开发效率。这些功能帮助用户更好地控制数据,优化API使用体验。
|
1月前
|
供应链 API 数据安全/隐私保护
电商API数据接口的核心功能
电商API数据接口是电商平台与外部系统通信的核心工具,具备订单管理、库存同步和电子面单获取三大功能。它实现订单信息实时同步、多平台整合与状态更新,提升商家运营效率;通过库存数据双向同步,避免超卖并优化库存成本;同时自动获取电子面单号,加快发货流程。电商API在提升交易效率与用户体验方面具有重要作用。
|
2月前
|
Java API
Java API中Math类功能全景扫描
在实际使用时,这些方法的精确度和性能得到了良好的优化。当处理复杂数学运算或高精度计算时,`Math`类通常是足够的。然而,对于非常精细或特殊的数学运算,可能需要考虑使用 `java.math`包中的 `BigDecimal`类或其他专业的数学库。
86 11
|
1月前
|
JSON 算法 API
拼多多API跨店比价功能,选品效率提升60%!
拼多多推出API跨店比价功能,助力商家与消费者高效选品。通过自动化比价与智能算法,实现选品效率提升60%。开发者可快速集成,优化采购与购物体验。智能高效,抢占市场先机。了解详情:https://o0b.cn/evan
189 0
|
1月前
|
安全 API 开发者
Docker Remote API的功能详述及其使用方法。
综上所述,Docker Remote API是管理Docker环境的强大工具,它使得开发者能够更灵活地集成和自动化Docker相关的操作。通过遵循Docker守护进程的安全配置标准和正确使用HTTP请求,可以有效地控制Docker守护进程,实现高效的容器管理和自动化部署。
93 0
|
2月前
|
API
Dataphin功能Tips系列(58)- 支持OAuth2.0认证方式的API数据源
在数据集成过程中,Dataphin需通过API从外部系统获取数据,而这些系统常采用动态令牌鉴权机制。本文介绍如何在Dataphin中配置支持OAuth 2.0认证的API数据源,实现自动获取和刷新访问令牌,确保安全高效地进行数据请求与集成。