github.com/gogf/gf@v1.16.9/.example/net/ghttp/server/router/group/level.go (about) 1 package main 2 3 import ( 4 "net/http" 5 6 "github.com/gogf/gf/frame/g" 7 "github.com/gogf/gf/net/ghttp" 8 ) 9 10 func MiddlewareAuth(r *ghttp.Request) { 11 token := r.Get("token") 12 if token == "123456" { 13 r.Middleware.Next() 14 } else { 15 r.Response.WriteStatus(http.StatusForbidden) 16 } 17 } 18 19 func MiddlewareCORS(r *ghttp.Request) { 20 r.Response.CORSDefault() 21 r.Middleware.Next() 22 } 23 24 func MiddlewareLog(r *ghttp.Request) { 25 r.Middleware.Next() 26 g.Log().Println(r.Response.Status, r.URL.Path) 27 } 28 29 func main() { 30 s := g.Server() 31 s.Use(MiddlewareLog) 32 s.Group("/api.v2", func(group *ghttp.RouterGroup) { 33 group.Middleware(MiddlewareAuth, MiddlewareCORS) 34 group.GET("/test", func(r *ghttp.Request) { 35 r.Response.Write("test") 36 }) 37 group.Group("/order", func(group *ghttp.RouterGroup) { 38 group.GET("/list", func(r *ghttp.Request) { 39 r.Response.Write("list") 40 }) 41 group.PUT("/update", func(r *ghttp.Request) { 42 r.Response.Write("update") 43 }) 44 }) 45 group.Group("/user", func(group *ghttp.RouterGroup) { 46 group.GET("/info", func(r *ghttp.Request) { 47 r.Response.Write("info") 48 }) 49 group.POST("/edit", func(r *ghttp.Request) { 50 r.Response.Write("edit") 51 }) 52 group.DELETE("/drop", func(r *ghttp.Request) { 53 r.Response.Write("drop") 54 }) 55 }) 56 group.Group("/hook", func(group *ghttp.RouterGroup) { 57 group.Hook("/*", ghttp.HookBeforeServe, func(r *ghttp.Request) { 58 r.Response.Write("hook any") 59 }) 60 group.Hook("/:name", ghttp.HookBeforeServe, func(r *ghttp.Request) { 61 r.Response.Write("hook name") 62 }) 63 }) 64 }) 65 s.SetPort(8199) 66 s.Run() 67 }