feat(router): 添加管理员路由中间件支持
- 在admin路由组中集成InitMiddleware中间件 - middleware包新增InitMiddleware实现用户身份设置与请求日志打印 - 管理员控制器Index方法增加从上下文获取用户名的逻辑并打印 - 主程序中初始化admin、api和default路由 - 修正default路由初始化时的代码格式问题
This commit is contained in:
@@ -1,12 +1,18 @@
|
|||||||
package admin
|
package admin
|
||||||
|
|
||||||
import "github.com/gin-gonic/gin"
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
|
"github.com/gin-gonic/gin"
|
||||||
|
)
|
||||||
|
|
||||||
type IndexController struct {
|
type IndexController struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (con IndexController) Index(c *gin.Context) {
|
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) {
|
func (con IndexController) Plist(c *gin.Context) {
|
||||||
|
|||||||
8
main.go
8
main.go
@@ -1,6 +1,8 @@
|
|||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"awesomeProject/router"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -15,6 +17,12 @@ func main() {
|
|||||||
// 配置静态文件目录,将./static目录映射到URL路径/static
|
// 配置静态文件目录,将./static目录映射到URL路径/static
|
||||||
r.Static("/static", "./static")
|
r.Static("/static", "./static")
|
||||||
|
|
||||||
|
router.AdminRouterInit(r)
|
||||||
|
|
||||||
|
router.ApiRouterInit(r)
|
||||||
|
|
||||||
|
router.DefaultRouterInit(r)
|
||||||
|
|
||||||
// 启动HTTP服务器,监听在8081端口
|
// 启动HTTP服务器,监听在8081端口
|
||||||
err := r.Run(":8088")
|
err := r.Run(":8088")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
22
middleware/init.go
Normal file
22
middleware/init.go
Normal 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)
|
||||||
|
}()
|
||||||
|
}
|
||||||
@@ -2,12 +2,13 @@ package router
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"awesomeProject/controller/admin"
|
"awesomeProject/controller/admin"
|
||||||
|
"awesomeProject/middleware"
|
||||||
|
|
||||||
"github.com/gin-gonic/gin"
|
"github.com/gin-gonic/gin"
|
||||||
)
|
)
|
||||||
|
|
||||||
func AdminRouterInit(r *gin.Engine) {
|
func AdminRouterInit(r *gin.Engine) {
|
||||||
adminRouter := r.Group("/admin")
|
adminRouter := r.Group("/admin", middleware.InitMiddleware)
|
||||||
{
|
{
|
||||||
adminRouter.GET("", admin.IndexController{}.Index)
|
adminRouter.GET("", admin.IndexController{}.Index)
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ import (
|
|||||||
|
|
||||||
func DefaultRouterInit(r *gin.Engine) {
|
func DefaultRouterInit(r *gin.Engine) {
|
||||||
defaultRouter := r.Group("/")
|
defaultRouter := r.Group("/")
|
||||||
|
|
||||||
{
|
{
|
||||||
defaultRouter.GET("", nannanwu.DefaultController{}.Index)
|
defaultRouter.GET("", nannanwu.DefaultController{}.Index)
|
||||||
defaultRouter.GET("/article", nannanwu.DefaultController{}.Article)
|
defaultRouter.GET("/article", nannanwu.DefaultController{}.Article)
|
||||||
|
|||||||
Reference in New Issue
Block a user