go-zero
文章平均质量分 83
码农兴哥
纸上得来终觉浅,绝知此事要躬行。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
从零开始构建一个Go语言的SDK框架:实现e签宝合同签署
在企业级应用开发中,电子签名服务已经成为不可或缺的一部分,e签宝作为国内领先的电子签名服务提供商,为开发者提供了丰富的API接口。由于工作项目中需要使用go语言对接e签宝合同业务,目前也没找到第三方好用的e签宝go语言SDK,所以,干脆自己从零手写一个SDK,把项目中踩过的坑也汇总整理一下,方便后来人参考使用。同时,本项目也可以作为其它SDK的框架模板,稍作改动就可以用于其它业务。本文将以这个e签宝Go SDK为例,展示如何从零开始构建一个完整的Go语言SDK框架。原创 2025-10-19 13:00:00 · 1877 阅读 · 0 评论 -
Go-Zero API Handler 自动化生成与参数验证集成
本文介绍了如何通过自定义go-zero框架的代码模板实现自动化参数验证。开发者在使用goctl生成API服务时,通常需要在每个handler中手动添加参数验证逻辑,导致重复工作。通过修改handler.tpl模板文件,在请求解析后自动添加middleware.ValidateRequest验证逻辑,可以统一处理所有参数验证。该方法不仅避免了手动修改的繁琐,还能保证代码风格一致,特别适合需要统一验证的场景,有效提升开发效率和代码质量。原创 2025-09-25 17:53:37 · 555 阅读 · 0 评论 -
Go语言中 error 接口与自定义错误类型的深入解析
文章摘要:Go语言中自定义错误类型与接口的nil判断存在差异。当具体类型(*MyError)的nil赋给接口变量(error)时,接口包含类型信息而数据为nil,导致err==nil判断为false。解决方案包括:1)直接返回error接口类型;2)使用类型断言;3)利用errors.As()方法;4)必要时使用反射。性能上直接比较最快,反射最慢。最佳实践建议优先使用error接口,合理选择判断方式,避免不必要的反射操作。理解接口内部机制有助于编写更健壮的Go代码。原创 2025-09-16 15:22:53 · 388 阅读 · 0 评论 -
go项目中操作数据库使用gorm和gen对比,附查询案例代码
查询数据的时候应该使用gorm还是gen呢?实际上,Gen是gorm里面的一个工具,或者说是在gorm的基础上做了更进一步的封装。GORM 和 GORM Gen 都是 Go 语言中用于数据库操作的工具,它们在功能和使用方式上存在一些区别。GORM 适合需要高度灵活性和对数据库操作有深入控制的场景,而 GORM Gen 则更适合快速开发和代码规范统一的项目。原创 2025-04-14 17:04:26 · 1355 阅读 · 0 评论 -
go-zero自动生成repository文件和测试用例
在软件开发中,尤其是在采用分层架构或者领域驱动设计(DDD)的项目里,repository(仓库)是一个关键概念,它起到数据访问层和业务逻辑层之间的桥梁作用,负责处理数据的持久化与检索,让业务逻辑层无需直接与数据库或其他数据存储交互。简单来说,repository 是一种设计模式,它把数据访问逻辑封装起来,让业务逻辑层和数据访问层解耦,从而提高代码的可维护性和可测试性。UserRepo 就是一个实现了该模式的具体类,它提供了对 User 模型的各种数据操作方法。原创 2025-04-10 16:47:43 · 1058 阅读 · 0 评论 -
go-zero使用elasticsearch踩坑记:时间存储和展示问题
通过go写入ES的示例,但是里面存在一个细节问题,就是写入的时间和ES展示的时间相差8小时的问题。导致这个问题的原因是时区设置的问题。由于写入到ES的时候没有特别设置具体的时区,ES会当成UTC时间处理,也就是认为写入的时间是UTC的2025-04-02 14:32:00,然而北京时间比UTC时间晚8个小时,那么,可以推测kibana页面上看到的应该是北京时间。原创 2025-04-03 17:20:12 · 1241 阅读 · 0 评论 -
go-zero中使用elasticsearch的示例
go-zero中使用elasticsearch的示例:模拟一个常见的业务,就是写入系统日志的功能,在go-zero中将系统日志写入到ES中。文件,这个文件中主要实现ES索引的定义和写入数据、以及查询数据的逻辑。原创 2025-03-04 10:04:28 · 920 阅读 · 0 评论 -
go-zero中定时任务的用法
在go-zero框架中使用定时任务调度的写法示例,首先需要用到的扩展:`go get -u github.com/robfig/cron/v3`,在这里我写上两个示例的定时任务,分别为“20秒打印一次SayHello”,以及“每一分钟查询一次当前用户总数”;可以轻松的在go-zero中实现定时任务的调度了,可以精确到秒级别。原创 2025-02-25 11:57:36 · 1010 阅读 · 0 评论 -
Golang关于结构体组合赋值的问题
Golang关于结构体组合赋值的问题原创 2025-02-14 17:56:23 · 466 阅读 · 0 评论 -
go语言简单快速的按顺序遍历kv结构(map)
在go语言中,如果需要对map遍历,每次输出的顺序是不固定的,多运行几次就会发现,每次运行后的顺序并不一致,因为go中的map的遍历是不保证顺序的。那么,直接在遍历的时候对key进行排序再按照key的顺序输出可以保证输出的都是按照key由小到大排序的结果。但是会存在缺陷。因此可以考虑存储为二维切片或结构体。原创 2025-02-12 18:43:29 · 647 阅读 · 0 评论 -
go-zero框架基本配置和错误码封装
每个层只需依赖这个上下文,而不需要直接处理底层的配置和初始化逻辑。是服务上下文的依赖注入,所有的配置项和数据库连接、以及业务逻辑所需的模型实例,都被集中管理在。接下来,我们把成功返回部分也优化一下,把原有的logic的成功返回部分改为统一封装的。上面只是配置了不同的env,还需要有一个方法来加载当前设定的env。同时可以新增如下配置文件,具体要在当前项目中运行哪个配置文件,修改。原创 2025-01-23 17:08:04 · 1181 阅读 · 0 评论 -
go-zero框架快速入门
go-zero 是一个集成了各种工程实践的 web 和 rpc 框架。通过弹性设计保障了大并发服务端的稳定性,经受了充分的实战检验。go-zero 包含极简的 API 定义和生成工具 goctl,可以根据定义的 api 文件一键生成代码。原创 2025-01-06 15:31:07 · 3205 阅读 · 2 评论
分享