- 课程目录
- 课程介绍
-
6.9 mongo-driver 完整用法与示例代码
1. 安装 mongo-driver可以使用以下命令进行安装:go get go.mongodb.org/mongo-driver/mongo2. 基本连接与配置Mo......
-
6.8 go-redis/redis 完整用法与示例代码
1. 安装 go-redis可以使用以下命令安装:go get github.com/go-redis/redis/v82. 基本连接你可以通过 redis.NewC......
-
6.7 go-resty/resty 完整用法与示例代码
1. 安装可以通过以下命令安装:go get github.com/go-resty/resty/v22. 创建一个简单的 HTTP 客户端通过 resty.New(......
-
5.6 示例二:集成登录、注册和用户管理功能
缘起:有部分开发者提出了这样的需求:亮哥,看了文档和源码后,我还是不知道如何下手,可以基于 gin-api-mono 集成下登录、注册和用户管理功能吗?于是就有它。为了避免有些开发者不需要这些功能,我重新开了一个新项目去实现。效果操作流程初始化数据表时,请使用 README.md 文档中的表结构。项目启动与 gin-api-mono 一致,查看接口文档。操作「管理员注册」接口,创建数据。操作「管理员登录」接口,登录成功并获取 Token。在接口文档 Authorize 中配置 Token,可访问用户管理相关接口。获取源码,可添加我微信 wx-xinliang 。有启发...
-
3.6 包装 gin Context
Context 是一个上下文对象,它提供了许多有用的方法和属性,用于处理 HTTP 请求和响应。代码片段:// ./internal/pkg/core/con......
-
3.5 包装 gin IRoutes
IRoutes 接口是定义路由组的接口。IRoutes 接口包含了定义路由的方法,可以用于添加路由和中间件等。代码片段:// ./......
-
3.4 实现链路日志记录
目前可收集日志类型包括:当前的请求日志当前的响应日志自定义调试日志MySQL 操作日志Redis 操作信息Mongo 操作信息请求三方 API 接口的请求与响应日志日志收集,代码片段:// ./internal/pkg/core/core.go // region 记录日志 var t *trace.Trace if x := context.Trace(); x != nil { t = x.(*trace.Trace) } else { return } decodedURL, _ := url.QueryUnescape(ctx.Request.URL.RequestURI()) // ctx.Request.Header,精简 Header 参数 traceHeader := map[string]string{ "Content-Type": ctx.GetHeader("Content-Type"), } t....
-
3.3 实现错误处理与告警
使用 IsAborted 函数来判断进行错误处理。统一处理,代码片段:// ./internal/pkg/core/core.go // region 发生......
-
3.2 实现异常捕获与告警
使用 defer 和 recover 函数来实现异常捕获与告警。defer 用于延迟函数的执行,recover 用于捕获 panic 异常并进行处理。框架已经集成,代......
-
3.1 实现服务启动时可选的配置项
使用 Options 设计模式实现,它可以让我们在服务启动时根据需要选择性地配置应用程序。可配置项,代码片段:// ./internal/pkg/core/core.go type option struct { enablePProf bool enableSwagger bool enablePrometheus bool enableCors bool alertNotify proposal.AlertHandler recordHandler proposal.RecordHandler } // WithEnablePProf 启用 pprof func WithEnablePProf() Option { return func(opt *option) { opt.enablePProf = true } } // WithEnableSwagger 启用 swagger func WithEnableSwagger() Option { return func(opt...