中间件
概述
xMiddle 提供 CORS、OPTIONS 预检、统一响应等常用中间件
中间件
xMiddle 提供 Gin 框架常用的中间件,包括 CORS 跨域处理、OPTIONS 预检请求、统一响应处理等。
import xMiddle "github.com/bamboo-services/bamboo-base-go/major/middleware"中间件列表
字段
类型
快速使用
func main() {
router := gin.Default()
// 按顺序注册中间件
router.Use(xMiddle.ReleaseAllCors) // 1. 设置 CORS 头
router.Use(xMiddle.AllowOption) // 2. 处理 OPTIONS 请求
router.Use(xMiddle.ResponseMiddleware) // 3. 统一响应处理
// 路由定义...
router.Run(":8080")
}中间件执行顺序
推荐配置
开发环境
// 开发环境:全开放 CORS
router.Use(xMiddle.ReleaseAllCors)
router.Use(xMiddle.AllowOption)
router.Use(xMiddle.ResponseMiddleware)生产环境
// 生产环境:建议自定义 CORS 配置
router.Use(customCorsMiddleware()) // 自定义 CORS
router.Use(xMiddle.AllowOption)
router.Use(xMiddle.ResponseMiddleware)与其他组件配合
配合 xResult 使用
func GetUser(ctx *gin.Context) {
user, err := userService.FindByID(ctx, id)
if err != nil {
// 使用 xError 抛出错误,ResponseMiddleware 自动处理
ctx.Error(xError.NewError(ctx.Request.Context(), xError.NotFound, "用户不存在", true))
return
}
// 使用 xResult 输出成功响应
xResult.Success(ctx, user)
}配合 xLog 使用
中间件内部使用 NamedMIDE 日志标识:
// AllowOption 中的日志
xLog.WithName(xLog.NamedMIDE).Debug(ctx, "检测到 OPTIONS 请求,继续处理")