跳过正文

GoWeb

1、简介
·5012 字·11 分钟· loading · loading
GoLang GoWeb Gin
Gin 简介 # Gin是用Go语言编写的一个HTTP Web框架,它是一个轻量级的、高性能的框架,特别适合开发API服务。作为目前Go生态中最受欢迎的Web框架之一,Gin以其极高的性能和生产级的可靠性而闻名。
2、gorm
·8020 字·17 分钟· loading · loading
GoLang GoWeb 数据库
ORM概念介绍 # 虽然Go的原生SQL包database/sql提供了最大的灵活性和控制力,但在实际项目中,我们经常需要一种更便捷、更安全、更贴近业务逻辑的方式来操作数据库。这就是ORM(对象关系映射)技术的用武之地。
7、项目实战
·742 字·2 分钟· loading · loading
GoLang GoWeb Gin
技术选型 # Gin:Web 框架 Gorm:ORM 框架 Go-Redis:Redis 框架 Logrus:日志框架 Wire:依赖注入管理 # Gin go get -u github.com/gin-gonic/gin # Go-Redis go get -u github.com/redis/go-redis/v9 # Gorm go get -u gorm.io/gorm # 数据库驱动 go get -u gorm.io/driver/mysql # Gorm-Gen go get -u gorm.io/gen # Logrus go get -u github.com/sirupsen/logrus # logrus-formatter go get -u github.com/antonfisher/nested-logrus-formatter # Wire-Cli go install github.com/google/wire/cmd/wire@latest # Wire go get -u github.com/google/wire 项目结构 # ├── cmd # cmd │ ├── gorm_gen.go # gorm代码生成 │ ├── main.go # main.go │ └── wire # wire │ ├── wire.go # 依赖注入管理 │ └── wire_gen.go # wire生成 ├── config # 配置目录 │ └── application.yml # 应用配置文件 ├── go.mod # go.mod ├── go.sum # go.sum ├── internal # 内部包 │ ├── config # 应用配置 │ │ ├── config.go # 配置文件读取 │ │ └── time.go # 自定义时间序列化 │ ├── dao # dao │ │ ├── gen.go # gorm生成 │ │ └── sys_user.gen.go # gorm生成 │ ├── database # 持久化层 │ │ ├── mysql.go # MySQL │ │ ├── provider_set.go # Wire ProviderSets 分组管理 │ │ └── redis.go # Redis │ ├── dto # DTO │ │ └── response.go # 控制层统一响应结构 │ ├── engine # 管理GIN引擎及路由 │ │ ├── api_v1 # V1版本路由 │ │ │ └── routes.go # 统一管理路由 │ │ ├── engine.go # GIN引擎管理 │ │ └── middleware # GIN中间件 │ │ └── error.go # 全局异常处理中间件 │ ├── handler # 控制层处理器 │ │ ├── provider_set.go # Wire ProviderSets 分组管理 │ │ └── sys_user.go # sys_user 处理器 │ ├── model # 模型 │ │ └── sys_user.gen.go # sys_user 模型 │ └── service # 业务层 │ ├── provider_set.go # Wire ProviderSets 分组管理 │ └── sys_user.go # sys_user 业务层 使用方式 # 管理路由 # 所有的路由均在engine/api_v1下管理
3、中间件
·4800 字·10 分钟· loading · loading
GoLang GoWeb Gin
中间件简介 # 在Web应用开发中,中间件(Middleware)是位于应用程序与服务器之间的软件组件,能够拦截HTTP请求和响应,并执行特定的逻辑处理。
4、nacos
·1281 字·3 分钟· loading · loading
GoLang GoWeb
Nacos-sdk-go是Nacos的Go语言客户端,它实现了服务发现和动态配置的功能
3、redis
·889 字·2 分钟· loading · loading
GoLang GoWeb 数据库
go-redis # **支持多种客户端:**支持单机Redis Server、Redis Cluster、Redis Sentinel、Redis分片服务器 **自动处理数据类型:**go-redis会根据不同的redis命令处理成指定的数据类型,不必进行繁琐的数据类型转换 **功能完善:**go-redis支持管道(pipeline)、事务、pub/sub、Lua脚本、mock、分布式锁等功能 官网:https://redis.uptrace.dev/zh/
2、路由
·1278 字·3 分钟· loading · loading
GoLang GoWeb Gin
Gin路由系统 # Gin的路由系统基于httprouter,经过优化后的性能是原生Go HTTP路由的40倍,是Echo等其他框架的2倍以上。Gin路由系统的主要特点包括:
6、模板引擎
·160 字·1 分钟· loading · loading
GoLang GoWeb Gin
gin支持加载HTML模板, 然后根据模板参数进行配置并返回相应的数据,本质上就是字符串替换
5、文件上传
·2568 字·6 分钟· loading · loading
GoLang GoWeb Gin
文件上传 # 文件上传是Web应用的常见需求,从技术角度看,它是一种特殊的HTTP请求,具有以下特点:
4、会话
·1424 字·3 分钟· loading · loading
GoLang GoWeb Gin
Cookie vs Session # 特性 Cookie Session 存储位置 客户端(浏览器) 服务器端 存储容量 小(4KB左右) 大(受服务器内存或存储限制) 生命周期 可长期存在直到过期 通常短期存在,会话结束或超时后失效 安全性 较低(存在客户端可被窃取) 较高(关键数据存在服务端) 使用场景 用户偏好,非敏感数据 用户认证状态,购物车等敏感数据 性能影响 增加请求头大小 需要服务器资源存储和检索 可扩展性 良好(数据在客户端) 需要特殊设计支持分布式系统 Cookie # Cookie是服务器发送到用户浏览器并保存在浏览器上的一小块数据。浏览器会在之后的请求中将Cookie发送回服务器,用于在无状态的HTTP协议中实现有状态的会话管理。