基于 Gin 封装的高效 Web 框架

基于 Gin 封装的高效 Web 框架

新亮 · 极客网编辑部

  • 课程介绍
  1. 6.9 mongo-driver 完整用法与示例代码

    1. 安装 mongo-driver可以使用以下命令进行安装:go get go.mongodb.org/mongo-driver/mongo2. 基本连接与配置Mo......

  2. 6.8 go-redis/redis 完整用法与示例代码

    1. 安装 go-redis可以使用以下命令安装:go get github.com/go-redis/redis/v82. 基本连接你可以通过 redis.NewC......

  3. 6.7 go-resty/resty 完整用法与示例代码

    1. 安装可以通过以下命令安装:go get github.com/go-resty/resty/v22. 创建一个简单的 HTTP 客户端通过 resty.New(......

  4. 5.6 示例二:集成登录、注册和用户管理功能

    缘起:有部分开发者提出了这样的需求:亮哥,看了文档和源码后,我还是不知道如何下手,可以基于 gin-api-mono 集成下登录、注册和用户管理功能吗?于是就有它。为了避免有些开发者不需要这些功能,我重新开了一个新项目去实现。效果操作流程初始化数据表时,请使用 README.md 文档中的表结构。项目启动与 gin-api-mono 一致,查看接口文档。操作「管理员注册」接口,创建数据。操作「管理员登录」接口,登录成功并获取 Token。在接口文档 Authorize 中配置 Token,可访问用户管理相关接口。获取源码,可添加我微信 wx-xinliang 。有启发...

  5. 3.6 包装 gin Context

    Context 是一个上下文对象,它提供了许多有用的方法和属性,用于处理 HTTP 请求和响应。代码片段:// ./internal/pkg/core/con......

  6. 3.5 包装 gin IRoutes

    IRoutes 接口是定义路由组的接口。IRoutes 接口包含了定义路由的方法,可以用于添加路由和中间件等。代码片段:// ./......

  7. 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....

  8. 3.3 实现错误处理与告警

    使用 IsAborted 函数来判断进行错误处理。统一处理,代码片段:// ./internal/pkg/core/core.go // region 发生......

  9. 3.2 实现异常捕获与告警

    使用 defer 和 recover 函数来实现异常捕获与告警。defer 用于延迟函数的执行,recover 用于捕获 panic 异常并进行处理。框架已经集成,代......

  10. 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...

课程介绍

从零开始教你如何基于 Gin 框架封装自己的 Web 框架,涵盖框架设计与实现。无论你经验水平如何,都可获得实际项目开发技巧,提高开发效率。 相比于我的开源项目 go-gin-api(GitHub 5.5K...