随笔分类 -  gin

go语言应用最广的web框架
摘要:一,安装gin $ go get github.com/gin-gonic/gin@latest 二,安装zap $ go get -u go.uber.org/zap 三,安装validator $ go get -u github.com/go-playground/validator/v10 阅读全文
posted @ 2025-10-26 17:13 刘宏缔的架构森林 阅读(30) 评论(0) 推荐(0)
摘要:一,需求说明: 我们的go程序的访问日志用了zap的BufferedWriteSyncer,默认一分钟后写入到磁盘,如果这时候go应用发生意外退出,则日志可能不能落盘,所以gin退出前,要把未执行的工作先结束才行 二,代码例子: package main import "C" import ( "f 阅读全文
posted @ 2025-02-23 17:37 刘宏缔的架构森林 阅读(169) 评论(0) 推荐(0)
摘要:一,代码: 1,global/accessLogger.go 初始化全局变量 package global import ( "go.uber.org/zap" "go.uber.org/zap/zapcore" "os" "time" ) var ( LogFileAccess *os.File 阅读全文
posted @ 2025-02-23 17:36 刘宏缔的架构森林 阅读(218) 评论(0) 推荐(0)
摘要:一,定义格式类 主要是两个方法: Success和Failed global/result.go package global import ( "github.com/gin-gonic/gin" "time" ) //返回的结果的内容: type ResultCont struct { Stat 阅读全文
posted @ 2025-02-15 11:10 刘宏缔的架构森林 阅读(232) 评论(0) 推荐(0)
摘要:一,中间件代码 这里我们演示一个例子:判断用户是否登录后,传递参数给controller func AuthCheck() gin.HandlerFunc { return func(c *gin.Context) { //从c得到参数后进行判断 isLogin:=1 userId:=100 if 阅读全文
posted @ 2025-02-15 11:09 刘宏缔的架构森林 阅读(102) 评论(0) 推荐(0)
摘要:一,常用的三个作用范围 1, 作用顺序: 实际中间件在工作时,按照注册顺序,路由前处理顺序为由前往后,后处理则由后往前 2,作用范围: 全局中间件: 该中间件以下的路由都可以生效 组路由中间件:对提定的路由组生效 单个路由中间件:对指定的单个路由生效 二,代码例子: 1,中间件代码: package 阅读全文
posted @ 2025-02-12 15:01 刘宏缔的架构森林 阅读(229) 评论(0) 推荐(0)
摘要:一,自定义异常 global/customError.go package global // 自定义错误类型 type CustomError struct { Code int Error error } 二,抛出异常 我们在gorm的自定义log中已经处理过数据库的异常,所以在查询遇到erro 阅读全文
posted @ 2025-02-09 19:17 刘宏缔的架构森林 阅读(158) 评论(0) 推荐(0)
摘要:一,代码 1,global/validator.go package global import "github.com/go-playground/validator/v10" //存放GetMessages()方法 type Validator interface { GetMessages() 阅读全文
posted @ 2025-01-31 17:39 刘宏缔的架构森林 阅读(269) 评论(0) 推荐(0)
摘要:一,安装第三方库: $ go get -u github.com/go-playground/validator/v10 go: downloading github.com/go-playground/validator/v10 v10.24.0 go: downloading github.co 阅读全文
posted @ 2025-01-31 15:02 刘宏缔的架构森林 阅读(61) 评论(0) 推荐(0)
摘要:一,得到get参数 1,代码: //得到列表 func (ic *ImageController) List(c *gin.Context) { // 不带缺省值 a := c.Query("a") // 带缺省值 d := c.DefaultQuery("d", "dd") fmt.Println 阅读全文
posted @ 2025-01-31 13:04 刘宏缔的架构森林 阅读(69) 评论(0) 推荐(0)
摘要:一,安装zap $ go get -u go.uber.org/zap go: downloading go.uber.org/zap v1.27.0 go: downloading go.uber.org/multierr v1.10.0 go: downloading go.uber.org/m 阅读全文
posted @ 2025-01-31 10:55 刘宏缔的架构森林 阅读(152) 评论(0) 推荐(0)
摘要:一,代码: 1,routes/route.go package routes import ( "fmt" "github.com/gin-gonic/gin" "imagebank/controller" "imagebank/global" "runtime/debug" "time" ) fu 阅读全文
posted @ 2025-01-30 19:56 刘宏缔的架构森林 阅读(291) 评论(0) 推荐(0)
摘要:一,目录结构: 二,代码: 1,controller/ImageController.go package controller import ( "github.com/gin-gonic/gin" "net/http" ) type ImageController struct{} func N 阅读全文
posted @ 2025-01-29 22:00 刘宏缔的架构森林 阅读(50) 评论(0) 推荐(0)
摘要:一,创建项目 创建目录: $ mkdir imagebank $ cd imagebank/ 创建项目: $ go mod init imagebank go: creating new go.mod: module imagebank 引入gin第三方库 liuhongdi@lhdpc:/data 阅读全文
posted @ 2025-01-29 16:01 刘宏缔的架构森林 阅读(80) 评论(0) 推荐(0)