feat(router): 添加管理员路由中间件支持

- 在admin路由组中集成InitMiddleware中间件
- middleware包新增InitMiddleware实现用户身份设置与请求日志打印
- 管理员控制器Index方法增加从上下文获取用户名的逻辑并打印
- 主程序中初始化admin、api和default路由
- 修正default路由初始化时的代码格式问题
This commit is contained in:
2026-02-22 13:42:58 +08:00
parent 32dae8712c
commit b7b0c32e82
5 changed files with 41 additions and 3 deletions

View File

@@ -1,12 +1,18 @@
package admin
import "github.com/gin-gonic/gin"
import (
"fmt"
"github.com/gin-gonic/gin"
)
type IndexController struct {
}
func (con IndexController) Index(c *gin.Context) {
c.String(200, "管理员用户列表")
username, _ := c.Get("user")
fmt.Println(username)
c.String(200, "管理员用户列表 %v", username)
}
func (con IndexController) Plist(c *gin.Context) {

View File

@@ -1,6 +1,8 @@
package main
import (
"awesomeProject/router"
"github.com/gin-gonic/gin"
)
@@ -15,6 +17,12 @@ func main() {
// 配置静态文件目录,将./static目录映射到URL路径/static
r.Static("/static", "./static")
router.AdminRouterInit(r)
router.ApiRouterInit(r)
router.DefaultRouterInit(r)
// 启动HTTP服务器监听在8081端口
err := r.Run(":8088")
if err != nil {

22
middleware/init.go Normal file
View File

@@ -0,0 +1,22 @@
package middleware
import (
"fmt"
"time"
"github.com/gin-gonic/gin"
)
func InitMiddleware(c *gin.Context) {
//判断是否登录
fmt.Println(time.Now())
fmt.Println(c.Request.URL.Path)
c.Set("user", "张三")
//定义goroutine统计
cCp := c.Copy()
go func() {
time.Sleep(1 * time.Second)
fmt.Println("统计信息" + cCp.Request.URL.Path)
}()
}

View File

@@ -2,12 +2,13 @@ package router
import (
"awesomeProject/controller/admin"
"awesomeProject/middleware"
"github.com/gin-gonic/gin"
)
func AdminRouterInit(r *gin.Engine) {
adminRouter := r.Group("/admin")
adminRouter := r.Group("/admin", middleware.InitMiddleware)
{
adminRouter.GET("", admin.IndexController{}.Index)

View File

@@ -8,6 +8,7 @@ import (
func DefaultRouterInit(r *gin.Engine) {
defaultRouter := r.Group("/")
{
defaultRouter.GET("", nannanwu.DefaultController{}.Index)
defaultRouter.GET("/article", nannanwu.DefaultController{}.Article)