From 6d55b30b39121bd2001dbdd1c628a1442fa26f48 Mon Sep 17 00:00:00 2001 From: John Date: Sat, 14 Sep 2019 23:36:02 +0800 Subject: [PATCH] add example for group router of ghttp.Server --- .../net/ghttp/server/router/group/group1.go | 78 ------------------- .../net/ghttp/server/router/group/level.go | 70 +++++++++++++++++ 2 files changed, 70 insertions(+), 78 deletions(-) delete mode 100644 .example/net/ghttp/server/router/group/group1.go create mode 100644 .example/net/ghttp/server/router/group/level.go diff --git a/.example/net/ghttp/server/router/group/group1.go b/.example/net/ghttp/server/router/group/group1.go deleted file mode 100644 index 808bbe994..000000000 --- a/.example/net/ghttp/server/router/group/group1.go +++ /dev/null @@ -1,78 +0,0 @@ -package main - -import ( - "github.com/gogf/gf/frame/g" - "github.com/gogf/gf/frame/gmvc" - "github.com/gogf/gf/net/ghttp" -) - -type Object struct{} - -func (o *Object) Show(r *ghttp.Request) { - r.Response.Writeln("Object Show") -} - -func (o *Object) Delete(r *ghttp.Request) { - r.Response.Writeln("Object REST Delete") -} - -func (o *Object) Shut(r *ghttp.Request) { - r.Response.Writeln("Object Shut") -} - -type Controller struct { - gmvc.Controller -} - -func (c *Controller) Show() { - c.Response.Writeln("Controller Show") -} - -func (c *Controller) Post() { - c.Response.Writeln("Controller REST Post") -} - -func (c *Controller) Shut() { - c.Response.Writeln("Controller Shut") -} - -func Handler(r *ghttp.Request) { - r.Response.Writeln("Handler") -} - -func HookHandler(r *ghttp.Request) { - r.Response.Writeln("Hook Handler") -} - -func main() { - s := g.Server() - obj := new(Object) - ctl := new(Controller) - - // 分组路由方法注册 - //g := s.Group("/api") - //g.ALL ("*", HookHandler, ghttp.HOOK_BEFORE_SERVE) - //g.ALL ("/handler", Handler) - //g.ALL ("/ctl", ctl) - //g.GET ("/ctl/my-show", ctl, "Show") - //g.REST("/ctl/rest", ctl) - //g.ALL ("/obj", obj) - //g.GET ("/obj/my-show", obj, "Show") - //g.REST("/obj/rest", obj) - - // 分组路由批量注册 - s.Group("/api").Bind([]ghttp.GroupItem{ - - {"ALL", "/handler", Handler}, - {"ALL", "/ctl", ctl}, - {"GET", "/ctl/my-show", ctl, "Show"}, - {"REST", "/ctl/rest", ctl}, - {"ALL", "/obj", obj}, - {"GET", "/obj/my-show", obj, "Show"}, - {"REST", "/obj/rest", obj}, - {"ALL", "*", HookHandler, ghttp.HOOK_BEFORE_SERVE}, - }) - - s.SetPort(8199) - s.Run() -} diff --git a/.example/net/ghttp/server/router/group/level.go b/.example/net/ghttp/server/router/group/level.go new file mode 100644 index 000000000..ad5019bc8 --- /dev/null +++ b/.example/net/ghttp/server/router/group/level.go @@ -0,0 +1,70 @@ +package main + +import ( + "net/http" + + "github.com/gogf/gf/frame/g" + "github.com/gogf/gf/net/ghttp" + "github.com/gogf/gf/os/glog" +) + +func MiddlewareAuth(r *ghttp.Request) { + token := r.Get("token") + if token == "123456" { + r.Middleware.Next() + } else { + r.Response.WriteStatus(http.StatusForbidden) + } +} + +func MiddlewareCORS(r *ghttp.Request) { + r.Response.CORSDefault() + r.Middleware.Next() +} + +func MiddlewareLog(r *ghttp.Request) { + r.Middleware.Next() + glog.Println(r.Response.Status, r.URL.Path) +} + +func main() { + s := g.Server() + s.Group("/", func(g *ghttp.RouterGroup) { + g.Middleware(MiddlewareLog) + }) + s.Group("/api.v2", func(g *ghttp.RouterGroup) { + g.Middleware(MiddlewareAuth, MiddlewareCORS) + g.GET("/test", func(r *ghttp.Request) { + r.Response.Write("test") + }) + g.Group("/order", func(g *ghttp.RouterGroup) { + g.GET("/list", func(r *ghttp.Request) { + r.Response.Write("list") + }) + g.PUT("/update", func(r *ghttp.Request) { + r.Response.Write("update") + }) + }) + g.Group("/user", func(g *ghttp.RouterGroup) { + g.GET("/info", func(r *ghttp.Request) { + r.Response.Write("info") + }) + g.POST("/edit", func(r *ghttp.Request) { + r.Response.Write("edit") + }) + g.DELETE("/drop", func(r *ghttp.Request) { + r.Response.Write("drop") + }) + }) + g.Group("/hook", func(g *ghttp.RouterGroup) { + g.Hook("/*", ghttp.HOOK_BEFORE_SERVE, func(r *ghttp.Request) { + r.Response.Write("hook any") + }) + g.Hook("/:name", ghttp.HOOK_BEFORE_SERVE, func(r *ghttp.Request) { + r.Response.Write("hook name") + }) + }) + }) + s.SetPort(8199) + s.Run() +}