- 新增用户与上传错误码文件及 Recovery 中间件 - 修复 router.go 导入与中间件链,注册用户路由并补 handler 错误码导入 - 补充用户状态常量与 UserGetByWechatOpenID 查询,修订刷新令牌 dto - 移除 upload 包 OTel 调用,新增 FileUploadCos 上传封装 - 实现 UserService 微信登录/刷新令牌/我的信息/改资料/上传头像 - 裁剪 main.go 配置段并移除 OTel 桥接,补启动与优雅退出 - 新增 configs 示例配置、global 配置结构及 go.mod 依赖
50 lines
1.1 KiB
Go
50 lines
1.1 KiB
Go
package routers
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"git.lzcwy.cn/zhengchiliu/zt-online-game-backend/internal/middleware"
|
|
v1 "git.lzcwy.cn/zhengchiliu/zt-online-game-backend/internal/routers/api/v1"
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
// NewRouter 构建 gin 引擎:注册中间件链与 /api/v1 路由。
|
|
func NewRouter() *gin.Engine {
|
|
r := gin.New()
|
|
|
|
// 中间件链:Recovery -> RequestID -> Slog -> CORS
|
|
r.Use(
|
|
middleware.Recovery(),
|
|
middleware.RequestID(),
|
|
middleware.GinSlogMiddleware(),
|
|
middleware.CORS(),
|
|
)
|
|
|
|
// 健康检查
|
|
r.GET("/ping", func(c *gin.Context) {
|
|
c.JSON(http.StatusOK, gin.H{"message": "pong"})
|
|
})
|
|
|
|
// handler 实例
|
|
userHandler := v1.NewUserHandler()
|
|
|
|
apiV1 := r.Group("/api/v1")
|
|
|
|
// ===== 公开路由(无需登录) =====
|
|
{
|
|
apiV1.POST("/user/wxlogin", userHandler.WxLogin)
|
|
apiV1.POST("/user/refresh-token", userHandler.RefreshToken)
|
|
}
|
|
|
|
// ===== 鉴权路由(需登录) =====
|
|
auth := apiV1.Group("")
|
|
auth.Use(middleware.JWTAuth())
|
|
{
|
|
auth.GET("/user/info", userHandler.InfoGetBySelf)
|
|
auth.PUT("/user/profile", userHandler.ProfileUpdate)
|
|
auth.POST("/user/avatar/upload", userHandler.AvatarUpload)
|
|
}
|
|
|
|
return r
|
|
}
|