From 6abe6602875226d7f6591fdd01380976e172596e Mon Sep 17 00:00:00 2001 From: John Date: Wed, 4 Dec 2019 13:55:08 +0800 Subject: [PATCH] export router map api for ghttp.Server; comment update for ghttp.Server --- net/ghttp/ghttp_server.go | 184 +++++++++--------- net/ghttp/ghttp_server_config.go | 4 +- net/ghttp/ghttp_server_config_mess.go | 4 +- net/ghttp/ghttp_server_router_group.go | 103 +++++----- net/ghttp/ghttp_server_router_middleware.go | 10 +- net/ghttp/ghttp_server_router_serve.go | 1 - net/ghttp/ghttp_server_service_handler.go | 2 +- net/ghttp/ghttp_unit_client_test.go | 2 +- net/ghttp/ghttp_unit_cookie_test.go | 2 +- net/ghttp/ghttp_unit_mess_test.go | 2 +- net/ghttp/ghttp_unit_middleware_test.go | 34 ++-- net/ghttp/ghttp_unit_param_json_test.go | 2 +- net/ghttp/ghttp_unit_param_struct_test.go | 2 +- net/ghttp/ghttp_unit_param_test.go | 4 +- net/ghttp/ghttp_unit_router_basic_test.go | 12 +- .../ghttp_unit_router_controller_rest_test.go | 2 +- .../ghttp_unit_router_controller_test.go | 6 +- .../ghttp_unit_router_domain_basic_test.go | 12 +- ...unit_router_domain_controller_rest_test.go | 2 +- ...http_unit_router_domain_controller_test.go | 6 +- ...ttp_unit_router_domain_object_rest_test.go | 2 +- .../ghttp_unit_router_domain_object_test.go | 6 +- net/ghttp/ghttp_unit_router_exit_test.go | 6 +- .../ghttp_unit_router_group_group_test.go | 2 +- .../ghttp_unit_router_group_hook_test.go | 6 +- .../ghttp_unit_router_group_rest_test.go | 2 +- net/ghttp/ghttp_unit_router_group_test.go | 6 +- net/ghttp/ghttp_unit_router_hook_test.go | 8 +- net/ghttp/ghttp_unit_router_names_test.go | 8 +- .../ghttp_unit_router_object_rest1_test.go | 2 +- .../ghttp_unit_router_object_rest2_test.go | 2 +- net/ghttp/ghttp_unit_router_object_test.go | 6 +- net/ghttp/ghttp_unit_session_test.go | 6 +- net/ghttp/ghttp_unit_template_test.go | 4 +- net/ghttp/ghttp_unit_websocket_test.go | 2 +- 35 files changed, 242 insertions(+), 222 deletions(-) diff --git a/net/ghttp/ghttp_server.go b/net/ghttp/ghttp_server.go index 28f59cecb..1a737f1c8 100644 --- a/net/ghttp/ghttp_server.go +++ b/net/ghttp/ghttp_server.go @@ -61,6 +61,16 @@ type ( Priority int // 优先级,用于链表排序,值越大优先级越高 } + // Router item just for dumping. + RouterItem struct { + Middleware string + Domain string + Method string + Route string + Priority int + handler *handlerItem + } + // 路由函数注册信息 handlerItem struct { itemId int // 用于标识该注册函数的唯一性ID @@ -238,22 +248,23 @@ func GetServer(name ...interface{}) *Server { // 作为守护协程异步执行(当同一进程中存在多个Web Server时,需要采用这种方式执行), // 需要结合Wait方式一起使用. func (s *Server) Start() error { - // 预处理路由注册项 + // Register group routes. s.handlePreBindItems() - // 服务进程初始化,只会初始化一次 + // Server process initialization, which can only be initialized once. serverProcessInit() - // 当前Web Server状态判断 + // Server can only be run once. if s.Status() == SERVER_STATUS_RUNNING { return errors.New("[ghttp] server is already running") } - // 没有注册任何路由,且没有开启文件服务,那么提示错误 + // If there's no route registered and no static service enabled, + // it then returns an error of invalid usage of server. if len(s.routesMap) == 0 && !s.config.FileServerEnabled { return errors.New(`[ghttp] there's no route set or static feature enabled, did you forget import the router?`) } - // Logging. + // Logging path setting check. if s.config.LogPath != "" { if err := s.config.Logger.SetPath(s.config.LogPath); err != nil { return errors.New(fmt.Sprintf("[ghttp] set log path '%s' error: %v", s.config.LogPath, err)) @@ -302,7 +313,7 @@ func (s *Server) Start() error { s.startServer(nil) } - // 如果是子进程,那么服务开启后通知父进程销毁 + // If this is a child process, it then notifies its parent exit. if gproc.IsChild() { gtimer.SetTimeout(2*time.Second, func() { if err := gproc.Send(gproc.PPid(), []byte("exit"), gADMIN_GPROC_COMM_GROUP); err != nil { @@ -311,87 +322,99 @@ func (s *Server) Start() error { }) } - // 打印展示路由表 - s.DumpRoutesMap() + s.DumpRouterMap() return nil } -// 打印展示路由表 -func (s *Server) DumpRoutesMap() { - if s.config.DumpRouteMap && len(s.routesMap) > 0 { - glog.Header(false).Println(fmt.Sprintf("\n%s", s.getRouteMapString())) +// DumpRouterMap dumps the router map to the log. +func (s *Server) DumpRouterMap() { + if s.config.DumpRouterMap && len(s.routesMap) > 0 { + buffer := bytes.NewBuffer(nil) + table := tablewriter.NewWriter(buffer) + table.SetHeader([]string{"SERVER", "ADDRESS", "DOMAIN", "METHOD", "P", "ROUTE", "HANDLER", "MIDDLEWARE"}) + table.SetRowLine(true) + table.SetBorder(false) + table.SetCenterSeparator("|") + table.SetColumnAlignment([]int{ + tablewriter.ALIGN_CENTER, + tablewriter.ALIGN_CENTER, + tablewriter.ALIGN_CENTER, + tablewriter.ALIGN_CENTER, + tablewriter.ALIGN_CENTER, + tablewriter.ALIGN_LEFT, + tablewriter.ALIGN_LEFT, + tablewriter.ALIGN_LEFT, + }) + + address := s.config.Address + if s.config.HTTPSAddr != "" { + if len(address) > 0 { + address += "," + } + address += "tls" + s.config.HTTPSAddr + } + for _, array := range s.GetRouterMap() { + data := make([]string, 8) + for _, item := range array { + data[0] = s.name + data[1] = address + data[2] = item.Domain + data[3] = item.Method + data[4] = gconv.String(len(strings.Split(item.Route, "/")) - 1 + item.Priority) + data[5] = item.Route + data[6] = item.handler.itemName + data[7] = item.Middleware + table.Append(data) + } + } + table.Render() + s.config.Logger.Header(false).Printf("\n%s", buffer.String()) } } -// 获得路由表(格式化字符串) -func (s *Server) getRouteMapString() string { - // Route table for dumping. - type tableItem struct { - middleware string - domain string - method string - route string - handler *handlerItem - priority int - } - - buf := bytes.NewBuffer(nil) - table := tablewriter.NewWriter(buf) - table.SetHeader([]string{"SERVER", "ADDRESS", "DOMAIN", "METHOD", "P", "ROUTE", "HANDLER", "MIDDLEWARE"}) - table.SetRowLine(true) - table.SetBorder(false) - table.SetCenterSeparator("|") - table.SetColumnAlignment([]int{ - tablewriter.ALIGN_CENTER, - tablewriter.ALIGN_CENTER, - tablewriter.ALIGN_CENTER, - tablewriter.ALIGN_CENTER, - tablewriter.ALIGN_CENTER, - tablewriter.ALIGN_LEFT, - tablewriter.ALIGN_LEFT, - tablewriter.ALIGN_LEFT, - }) - +// GetRouterMap retrieves and returns the router map. +// The key of the returned map is the domain of the server. +func (s *Server) GetRouterMap() map[string][]RouterItem { m := make(map[string]*garray.SortedArray) for k, registeredItems := range s.routesMap { array, _ := gregex.MatchString(`(.*?)%([A-Z]+):(.+)@(.+)`, k) for index, registeredItem := range registeredItems { - item := &tableItem{ - middleware: array[1], - domain: array[4], - method: array[2], - route: array[3], + item := RouterItem{ + Middleware: array[1], + Domain: array[4], + Method: array[2], + Route: array[3], + Priority: len(registeredItems) - index - 1, handler: registeredItem.handler, - priority: len(registeredItems) - index - 1, } if item.handler.itemType == gHANDLER_TYPE_MIDDLEWARE { - item.middleware = "GLOBAL MIDDLEWARE" + item.Middleware = "GLOBAL MIDDLEWARE" } if len(item.handler.middleware) > 0 { for _, v := range item.handler.middleware { - if item.middleware != "" { - item.middleware += "," + if item.Middleware != "" { + item.Middleware += "," } - item.middleware += gdebug.FuncName(v) + item.Middleware += gdebug.FuncName(v) } } // If the domain does not exist in the dump map, it create the map. // The value of the map is a custom sorted array. - if _, ok := m[item.domain]; !ok { + if _, ok := m[item.Domain]; !ok { // Sort in ASC order. - m[item.domain] = garray.NewSortedArraySize(100, func(v1, v2 interface{}) int { - item1 := v1.(*tableItem) - item2 := v2.(*tableItem) + m[item.Domain] = garray.NewSortedArraySize(100, func(v1, v2 interface{}) int { + item1 := v1.(RouterItem) + item2 := v2.(RouterItem) r := 0 - if r = strings.Compare(item1.domain, item2.domain); r == 0 { - if r = strings.Compare(item1.route, item2.route); r == 0 { - if r = strings.Compare(item1.method, item2.method); r == 0 { + if r = strings.Compare(item1.Domain, item2.Domain); r == 0 { + if r = strings.Compare(item1.Route, item2.Route); r == 0 { + if r = strings.Compare(item1.Method, item2.Method); r == 0 { if item1.handler.itemType == gHANDLER_TYPE_MIDDLEWARE && item2.handler.itemType != gHANDLER_TYPE_MIDDLEWARE { return -1 } else if item1.handler.itemType == gHANDLER_TYPE_MIDDLEWARE && item2.handler.itemType == gHANDLER_TYPE_MIDDLEWARE { return 1 - } else if r = strings.Compare(item1.middleware, item2.middleware); r == 0 { - r = item2.priority - item1.priority + } else if r = strings.Compare(item1.Middleware, item2.Middleware); r == 0 { + r = item2.Priority - item1.Priority } } } @@ -399,51 +422,36 @@ func (s *Server) getRouteMapString() string { return r }) } - m[item.domain].Add(item) + m[item.Domain].Add(item) } } - itemFunc := s.config.Address - if s.config.HTTPSAddr != "" { - if len(itemFunc) > 0 { - itemFunc += "," + routerMap := make(map[string][]RouterItem, len(m)) + for domain, array := range m { + if routerMap[domain] == nil { + routerMap[domain] = make([]RouterItem, array.Len()) } - itemFunc += "tls" + s.config.HTTPSAddr - } - for _, a := range m { - data := make([]string, 8) - for _, v := range a.Slice() { - item := v.(*tableItem) - data[0] = s.name - data[1] = itemFunc - data[2] = item.domain - data[3] = item.method - data[4] = gconv.String(len(strings.Split(item.route, "/")) - 1 + item.priority) - data[5] = item.route - data[6] = item.handler.itemName - data[7] = item.middleware - table.Append(data) + for k, v := range array.Slice() { + routerMap[domain][k] = v.(RouterItem) } } - table.Render() - - return buf.String() + return routerMap } -// 阻塞执行监听 +// Run starts server listening in blocking way. func (s *Server) Run() { if err := s.Start(); err != nil { glog.Fatal(err) } - // 阻塞等待服务执行完成 + + // Blocking using channel. <-s.closeChan glog.Printf("[ghttp] %d: all servers shutdown", gproc.Pid()) } -// 阻塞等待所有Web Server停止,常用于多Web Server场景,以及需要将Web Server异步运行的场景 -// 这是一个与进程相关的方法 +// Wait blocks to wait for all servers done. +// It's commonly used in multiple servers situation. func Wait() { - // 阻塞等待服务执行完成 <-allDoneChan glog.Printf("[ghttp] %d: all servers shutdown", gproc.Pid()) diff --git a/net/ghttp/ghttp_server_config.go b/net/ghttp/ghttp_server_config.go index 30e3c8c0c..a3b2ca342 100644 --- a/net/ghttp/ghttp_server_config.go +++ b/net/ghttp/ghttp_server_config.go @@ -73,7 +73,7 @@ type ServerConfig struct { PProfPattern string // PProf: PProf service pattern for router. FormParsingMemory int64 // Other: Max memory in bytes which can be used for parsing multimedia form. NameToUriType int // Other: Type for converting struct method name to URI when registering routes. - DumpRouteMap bool // Other: Whether automatically dump route map when server starts. + DumpRouterMap bool // Other: Whether automatically dump router map when server starts. } // defaultServerConfig is the default configuration object for server. @@ -105,7 +105,7 @@ var defaultServerConfig = ServerConfig{ ErrorLogPattern: "error-{Ymd}.log", AccessLogEnabled: false, AccessLogPattern: "access-{Ymd}.log", - DumpRouteMap: true, + DumpRouterMap: true, FormParsingMemory: 100 * 1024 * 1024, // 100MB Rewrites: make(map[string]string), } diff --git a/net/ghttp/ghttp_server_config_mess.go b/net/ghttp/ghttp_server_config_mess.go index 3b6de27b8..505a2d4ad 100644 --- a/net/ghttp/ghttp_server_config_mess.go +++ b/net/ghttp/ghttp_server_config_mess.go @@ -10,8 +10,8 @@ func (s *Server) SetNameToUriType(t int) { s.config.NameToUriType = t } -func (s *Server) SetDumpRouteMap(enabled bool) { - s.config.DumpRouteMap = enabled +func (s *Server) SetDumpRouterMap(enabled bool) { + s.config.DumpRouterMap = enabled } func (s *Server) SetFormParsingMemory(maxMemory int64) { diff --git a/net/ghttp/ghttp_server_router_group.go b/net/ghttp/ghttp_server_router_group.go index 66202fcd9..71b5f508e 100644 --- a/net/ghttp/ghttp_server_router_group.go +++ b/net/ghttp/ghttp_server_router_group.go @@ -16,33 +16,35 @@ import ( "github.com/gogf/gf/util/gconv" ) -// 分组路由对象 -type RouterGroup struct { - parent *RouterGroup // 父级分组路由 - server *Server // Server - domain *Domain // Domain - prefix string // URI前缀 - middleware []HandlerFunc // 分组路由绑定的中间件 -} +type ( + // RouterGroup is a group wrapping multiple routes and middleware. + RouterGroup struct { + parent *RouterGroup // Parent group. + server *Server // Server. + domain *Domain // Domain. + prefix string // Prefix for sub-route. + middleware []HandlerFunc // Middleware array. + } -// 分组路由批量绑定项 -type GroupItem = []interface{} + // GroupItem is item for router group. + GroupItem = []interface{} -// 预绑定路由项结构 -type groupPreBindItem struct { - group *RouterGroup - bindType string - pattern string - object interface{} - params []interface{} -} - -var ( - // 预处理路由项存储数组 - preBindItems = make([]groupPreBindItem, 0, 64) + // preBindItem is item for lazy registering feature of router group. preBindItem is not really registered + // to server when route function of the group called but is lazily registered when server starts. + preBindItem struct { + group *RouterGroup + bindType string + pattern string + object interface{} // Can be handler, controller or object. + params []interface{} // Extra parameters for route registering depending on the type. + } ) -// 处理预绑定路由项 +var ( + preBindItems = make([]preBindItem, 0, 64) +) + +// handlePreBindItems is called when server starts, which does really route registering to the server. func (s *Server) handlePreBindItems() { for _, item := range preBindItems { // Handle the items of current server. @@ -56,7 +58,7 @@ func (s *Server) handlePreBindItems() { } } -// 获取分组路由对象 +// Group creates and returns a RouterGroup object. func (s *Server) Group(prefix string, groups ...func(group *RouterGroup)) *RouterGroup { if len(prefix) > 0 && prefix[0] != '/' { prefix = "/" + prefix @@ -76,7 +78,7 @@ func (s *Server) Group(prefix string, groups ...func(group *RouterGroup)) *Route return group } -// 获取分组路由对象(绑定域名) +// Group creates and returns a RouterGroup object, which is bound to a specified domain. func (d *Domain) Group(prefix string, groups ...func(group *RouterGroup)) *RouterGroup { if len(prefix) > 0 && prefix[0] != '/' { prefix = "/" + prefix @@ -96,7 +98,7 @@ func (d *Domain) Group(prefix string, groups ...func(group *RouterGroup)) *Route return group } -// 层级递归创建分组路由注册项 +// Group creates and returns a sub-group of current router group. func (g *RouterGroup) Group(prefix string, groups ...func(group *RouterGroup)) *RouterGroup { if prefix == "/" { prefix = "" @@ -119,6 +121,7 @@ func (g *RouterGroup) Group(prefix string, groups ...func(group *RouterGroup)) * return group } +// Clone returns a new router group which is a clone of current group. func (g *RouterGroup) Clone() *RouterGroup { newGroup := &RouterGroup{ parent: g.parent, @@ -131,7 +134,7 @@ func (g *RouterGroup) Clone() *RouterGroup { return newGroup } -// 执行分组路由批量绑定 +// Bind does batch route registering feature for router group. func (g *RouterGroup) Bind(items []GroupItem) *RouterGroup { group := g.Clone() for _, item := range items { @@ -160,72 +163,75 @@ func (g *RouterGroup) Bind(items []GroupItem) *RouterGroup { return group } -// 绑定所有的HTTP Method请求方式 +// ALL registers a http handler to given route pattern and all http methods. func (g *RouterGroup) ALL(pattern string, object interface{}, params ...interface{}) *RouterGroup { return g.Clone().preBind("HANDLER", gDEFAULT_METHOD+":"+pattern, object, params...) } -// 绑定常用方法: GET/PUT/POST/DELETE -func (g *RouterGroup) COMMON(pattern string, object interface{}, params ...interface{}) *RouterGroup { - group := g.Clone() - group.preBind("HANDLER", "GET:"+pattern, object, params...) - group.preBind("HANDLER", "PUT:"+pattern, object, params...) - group.preBind("HANDLER", "POST:"+pattern, object, params...) - group.preBind("HANDLER", "DELETE:"+pattern, object, params...) - return group -} - +// GET registers a http handler to given route pattern and http method: GET. func (g *RouterGroup) GET(pattern string, object interface{}, params ...interface{}) *RouterGroup { return g.Clone().preBind("HANDLER", "GET:"+pattern, object, params...) } +// PUT registers a http handler to given route pattern and http method: PUT. func (g *RouterGroup) PUT(pattern string, object interface{}, params ...interface{}) *RouterGroup { return g.Clone().preBind("HANDLER", "PUT:"+pattern, object, params...) } +// POST registers a http handler to given route pattern and http method: POST. func (g *RouterGroup) POST(pattern string, object interface{}, params ...interface{}) *RouterGroup { return g.Clone().preBind("HANDLER", "POST:"+pattern, object, params...) } +// DELETE registers a http handler to given route pattern and http method: DELETE. func (g *RouterGroup) DELETE(pattern string, object interface{}, params ...interface{}) *RouterGroup { return g.Clone().preBind("HANDLER", "DELETE:"+pattern, object, params...) } +// PATCH registers a http handler to given route pattern and http method: PATCH. func (g *RouterGroup) PATCH(pattern string, object interface{}, params ...interface{}) *RouterGroup { return g.Clone().preBind("HANDLER", "PATCH:"+pattern, object, params...) } +// HEAD registers a http handler to given route pattern and http method: HEAD. func (g *RouterGroup) HEAD(pattern string, object interface{}, params ...interface{}) *RouterGroup { return g.Clone().preBind("HANDLER", "HEAD:"+pattern, object, params...) } +// CONNECT registers a http handler to given route pattern and http method: CONNECT. func (g *RouterGroup) CONNECT(pattern string, object interface{}, params ...interface{}) *RouterGroup { return g.Clone().preBind("HANDLER", "CONNECT:"+pattern, object, params...) } +// OPTIONS registers a http handler to given route pattern and http method: OPTIONS. func (g *RouterGroup) OPTIONS(pattern string, object interface{}, params ...interface{}) *RouterGroup { return g.Clone().preBind("HANDLER", "OPTIONS:"+pattern, object, params...) } +// TRACE registers a http handler to given route pattern and http method: TRACE. func (g *RouterGroup) TRACE(pattern string, object interface{}, params ...interface{}) *RouterGroup { return g.Clone().preBind("HANDLER", "TRACE:"+pattern, object, params...) } +// REST registers a http handler to given route pattern according to REST rule. func (g *RouterGroup) REST(pattern string, object interface{}) *RouterGroup { return g.Clone().preBind("REST", pattern, object) } +// Hook registers a hook to given route pattern. func (g *RouterGroup) Hook(pattern string, hook string, handler HandlerFunc) *RouterGroup { return g.Clone().preBind("HANDLER", pattern, handler, hook) } +// Middleware binds one or more middleware to the router group. func (g *RouterGroup) Middleware(handlers ...HandlerFunc) *RouterGroup { g.middleware = append(g.middleware, handlers...) return g } +// preBind adds the route registering parameters to internal variable array for lazily registering feature. func (g *RouterGroup) preBind(bindType string, pattern string, object interface{}, params ...interface{}) *RouterGroup { - preBindItems = append(preBindItems, groupPreBindItem{ + preBindItems = append(preBindItems, preBindItem{ group: g, bindType: bindType, pattern: pattern, @@ -235,6 +241,7 @@ func (g *RouterGroup) preBind(bindType string, pattern string, object interface{ return g } +// getPrefix returns the route prefix of the group, which recursively retrieves its parent's prefixo. func (g *RouterGroup) getPrefix() string { prefix := g.prefix parent := g.parent @@ -245,10 +252,10 @@ func (g *RouterGroup) getPrefix() string { return prefix } -// 执行路由绑定 +// doBind does really registering for the group. func (g *RouterGroup) doBind(bindType string, pattern string, object interface{}, params ...interface{}) *RouterGroup { prefix := g.getPrefix() - // 注册路由处理 + // Route check. if len(prefix) > 0 { domain, method, path, err := g.server.parsePattern(pattern) if err != nil { @@ -264,11 +271,11 @@ func (g *RouterGroup) doBind(bindType string, pattern string, object interface{} pattern = g.server.serveHandlerKey(method, prefix+"/"+strings.TrimLeft(path, "/"), domain) } } - // 去掉可能重复出现的'//'符号 + // Filter repeated char '/'. pattern = gstr.Replace(pattern, "//", "/") - // 将附加参数转换为字符串 + // Convert params to string array. extras := gconv.Strings(params) - // 判断是否事件回调注册 + // Check whether it's a hook handler. if _, ok := object.(HandlerFunc); ok && len(extras) > 0 { bindType = "HOOK" } @@ -337,14 +344,14 @@ func (g *RouterGroup) doBind(bindType string, pattern string, object interface{} return g } -// 判断给定对象是否控制器对象: -// 控制器必须包含以下公开的属性对象:Request/Response/Server/Cookie/Session/View. +// isController checks and returns whether given is a controller. +// A controller should contains attributes: Request/Response/Server/Cookie/Session/View. func (g *RouterGroup) isController(value interface{}) bool { - // 首先判断是否满足控制器接口定义 + // Whether implements interface Controller. if _, ok := value.(Controller); !ok { return false } - // 其次检查控制器的必需属性 + // Check the necessary attributes. v := reflect.ValueOf(value) if v.Kind() == reflect.Ptr { v = v.Elem() diff --git a/net/ghttp/ghttp_server_router_middleware.go b/net/ghttp/ghttp_server_router_middleware.go index 31dc39e61..7113285bb 100644 --- a/net/ghttp/ghttp_server_router_middleware.go +++ b/net/ghttp/ghttp_server_router_middleware.go @@ -11,10 +11,14 @@ import ( ) const ( + // The default route pattern for global middleware. gDEFAULT_MIDDLEWARE_PATTERN = "/*" ) -// 注册中间件,绑定到指定的路由规则上,中间件参数支持多个。 +// BindMiddleware registers one or more global middleware to the server. +// Global middleware can be used standalone without service handler, which intercepts all dynamic requests +// before or after service handler. The parameter specifies what route pattern the middleware intercepts, +// which is usually a "fuzzy" pattern like "/:name", "/*any" or "/{field}". func (s *Server) BindMiddleware(pattern string, handlers ...HandlerFunc) { for _, handler := range handlers { s.setHandler(pattern, &handlerItem{ @@ -25,7 +29,9 @@ func (s *Server) BindMiddleware(pattern string, handlers ...HandlerFunc) { } } -// 注册中间件,绑定到全局路由规则("/*")上,中间件参数支持多个。 +// BindMiddlewareDefault registers one or more global middleware to the server using default pattern "/*". +// Global middleware can be used standalone without service handler, which intercepts all dynamic requests +// before or after service handler. func (s *Server) BindMiddlewareDefault(handlers ...HandlerFunc) { for _, handler := range handlers { s.setHandler(gDEFAULT_MIDDLEWARE_PATTERN, &handlerItem{ diff --git a/net/ghttp/ghttp_server_router_serve.go b/net/ghttp/ghttp_server_router_serve.go index 0f0f592f3..bed47c8b4 100644 --- a/net/ghttp/ghttp_server_router_serve.go +++ b/net/ghttp/ghttp_server_router_serve.go @@ -64,7 +64,6 @@ func (s *Server) searchHandlers(method, path, domain string) (parsedItems []*han if !ok { continue } - //gutil.Dump(p) // 多层链表(每个节点都有一个*list链表)的目的是当叶子节点未有任何规则匹配时,让父级模糊匹配规则继续处理 lists := make([]*glist.List, 0, 16) for k, v := range array { diff --git a/net/ghttp/ghttp_server_service_handler.go b/net/ghttp/ghttp_server_service_handler.go index 92172ff47..bc28de891 100644 --- a/net/ghttp/ghttp_server_service_handler.go +++ b/net/ghttp/ghttp_server_service_handler.go @@ -31,7 +31,7 @@ func (s *Server) doBindHandler(pattern string, handler HandlerFunc, middleware [ }) } -// 通过映射数组绑定URI到操作函数/方法 +// 通过映射map绑定URI到操作函数/方法 func (s *Server) bindHandlerByMap(m handlerMap) { for p, h := range m { s.setHandler(p, h) diff --git a/net/ghttp/ghttp_unit_client_test.go b/net/ghttp/ghttp_unit_client_test.go index c155c8c1e..47765c2e8 100644 --- a/net/ghttp/ghttp_unit_client_test.go +++ b/net/ghttp/ghttp_unit_client_test.go @@ -23,7 +23,7 @@ func Test_Client_Basic(t *testing.T) { r.Response.Write("hello") }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() diff --git a/net/ghttp/ghttp_unit_cookie_test.go b/net/ghttp/ghttp_unit_cookie_test.go index 44ec6fc7d..293414bd4 100644 --- a/net/ghttp/ghttp_unit_cookie_test.go +++ b/net/ghttp/ghttp_unit_cookie_test.go @@ -29,7 +29,7 @@ func Test_Cookie(t *testing.T) { r.Cookie.Remove(r.GetString("k")) }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() diff --git a/net/ghttp/ghttp_unit_mess_test.go b/net/ghttp/ghttp_unit_mess_test.go index fdb232aff..fe0cd0ee6 100644 --- a/net/ghttp/ghttp_unit_mess_test.go +++ b/net/ghttp/ghttp_unit_mess_test.go @@ -23,7 +23,7 @@ func Test_GetUrl(t *testing.T) { r.Response.Write(r.GetUrl()) }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() diff --git a/net/ghttp/ghttp_unit_middleware_test.go b/net/ghttp/ghttp_unit_middleware_test.go index 08685d913..e1fc2be1f 100644 --- a/net/ghttp/ghttp_unit_middleware_test.go +++ b/net/ghttp/ghttp_unit_middleware_test.go @@ -45,7 +45,7 @@ func Test_BindMiddleware_Basic1(t *testing.T) { r.Response.Write("8") }) s.SetPort(p) - s.SetDumpRouteMap(false) + //s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -72,7 +72,7 @@ func Test_BindMiddleware_Basic2(t *testing.T) { r.Response.Write("2") }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -112,7 +112,7 @@ func Test_BindMiddleware_Basic3(t *testing.T) { r.Response.Write("8") }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -148,7 +148,7 @@ func Test_BindMiddleware_Basic4(t *testing.T) { }) }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -177,7 +177,7 @@ func Test_Middleware_With_Static(t *testing.T) { }) }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.SetServerRoot(gfile.Join(gdebug.CallerDirectory(), "testdata", "static1")) s.Start() defer s.Shutdown() @@ -206,7 +206,7 @@ func Test_Middleware_Status(t *testing.T) { }) }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() time.Sleep(100 * time.Millisecond) @@ -249,7 +249,7 @@ func Test_Middleware_Hook_With_Static(t *testing.T) { }) }) s.SetPort(p) - //s.SetDumpRouteMap(false) + //s.SetDumpRouterMap(false) s.SetServerRoot(gfile.Join(gdebug.CallerDirectory(), "testdata", "static1")) s.Start() defer s.Shutdown() @@ -288,7 +288,7 @@ func Test_BindMiddleware_Status(t *testing.T) { r.Middleware.Next() }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -321,7 +321,7 @@ func Test_BindMiddlewareDefault_Basic1(t *testing.T) { r.Response.Write("4") }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -352,7 +352,7 @@ func Test_BindMiddlewareDefault_Basic2(t *testing.T) { r.Response.Write("4") }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -383,7 +383,7 @@ func Test_BindMiddlewareDefault_Basic3(t *testing.T) { r.Response.Write("2") }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -412,7 +412,7 @@ func Test_BindMiddlewareDefault_Basic4(t *testing.T) { r.Middleware.Next() }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -441,7 +441,7 @@ func Test_BindMiddlewareDefault_Basic5(t *testing.T) { r.Middleware.Next() }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -465,7 +465,7 @@ func Test_BindMiddlewareDefault_Status(t *testing.T) { r.Middleware.Next() }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -516,7 +516,7 @@ func Test_BindMiddlewareDefault_Basic6(t *testing.T) { r.Response.Write("4") }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -563,7 +563,7 @@ func Test_Hook_Middleware_Basic1(t *testing.T) { r.Response.Write("4") }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -601,7 +601,7 @@ func Test_Middleware_CORSAndAuth(t *testing.T) { }) }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() time.Sleep(100 * time.Millisecond) diff --git a/net/ghttp/ghttp_unit_param_json_test.go b/net/ghttp/ghttp_unit_param_json_test.go index bf7dcc040..fe3392555 100644 --- a/net/ghttp/ghttp_unit_param_json_test.go +++ b/net/ghttp/ghttp_unit_param_json_test.go @@ -90,7 +90,7 @@ func Test_Params_Json(t *testing.T) { r.Response.WriteJson(responseJson) }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() diff --git a/net/ghttp/ghttp_unit_param_struct_test.go b/net/ghttp/ghttp_unit_param_struct_test.go index 7f531145f..341b0935e 100644 --- a/net/ghttp/ghttp_unit_param_struct_test.go +++ b/net/ghttp/ghttp_unit_param_struct_test.go @@ -53,7 +53,7 @@ func Test_Params_Struct(t *testing.T) { } }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() diff --git a/net/ghttp/ghttp_unit_param_test.go b/net/ghttp/ghttp_unit_param_test.go index b08adbff4..0b62fba00 100644 --- a/net/ghttp/ghttp_unit_param_test.go +++ b/net/ghttp/ghttp_unit_param_test.go @@ -288,7 +288,7 @@ func Test_Params_Basic(t *testing.T) { } }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -426,7 +426,7 @@ func Test_Params_Priority(t *testing.T) { })) }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() diff --git a/net/ghttp/ghttp_unit_router_basic_test.go b/net/ghttp/ghttp_unit_router_basic_test.go index fddbe88bc..3738d5627 100644 --- a/net/ghttp/ghttp_unit_router_basic_test.go +++ b/net/ghttp/ghttp_unit_router_basic_test.go @@ -35,7 +35,7 @@ func Test_Router_Basic(t *testing.T) { r.Response.Write(r.Get("field")) }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -61,7 +61,7 @@ func Test_Router_Method(t *testing.T) { }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -109,7 +109,7 @@ func Test_Router_Status(t *testing.T) { r.Response.WriteStatus(500) }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -156,7 +156,7 @@ func Test_Router_CustomStatusHandler(t *testing.T) { r.Response.Write("404 page") }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -182,7 +182,7 @@ func Test_Router_404(t *testing.T) { r.Response.Write("hello") }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -215,7 +215,7 @@ func Test_Router_Priority(t *testing.T) { r.Response.Write("admin-goods-{page}") }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() diff --git a/net/ghttp/ghttp_unit_router_controller_rest_test.go b/net/ghttp/ghttp_unit_router_controller_rest_test.go index 25c87b097..a5b7e3cd1 100644 --- a/net/ghttp/ghttp_unit_router_controller_rest_test.go +++ b/net/ghttp/ghttp_unit_router_controller_rest_test.go @@ -65,7 +65,7 @@ func Test_Router_ControllerRest(t *testing.T) { s.BindControllerRest("/", new(ControllerRest)) s.BindControllerRest("/{.struct}/{.method}", new(ControllerRest)) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() diff --git a/net/ghttp/ghttp_unit_router_controller_test.go b/net/ghttp/ghttp_unit_router_controller_test.go index 3c657627d..f9834b9ed 100644 --- a/net/ghttp/ghttp_unit_router_controller_test.go +++ b/net/ghttp/ghttp_unit_router_controller_test.go @@ -49,7 +49,7 @@ func Test_Router_Controller1(t *testing.T) { s.BindController("/", new(Controller)) s.BindController("/{.struct}/{.method}", new(Controller)) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -79,7 +79,7 @@ func Test_Router_Controller2(t *testing.T) { s := g.Server(p) s.BindController("/controller", new(Controller), "Show, Info") s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -105,7 +105,7 @@ func Test_Router_ControllerMethod(t *testing.T) { s := g.Server(p) s.BindControllerMethod("/controller-info", new(Controller), "Info") s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() diff --git a/net/ghttp/ghttp_unit_router_domain_basic_test.go b/net/ghttp/ghttp_unit_router_domain_basic_test.go index e0f1b9236..8ca2ee647 100644 --- a/net/ghttp/ghttp_unit_router_domain_basic_test.go +++ b/net/ghttp/ghttp_unit_router_domain_basic_test.go @@ -37,7 +37,7 @@ func Test_Router_DomainBasic(t *testing.T) { r.Response.Write(r.Get("field")) }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -79,7 +79,7 @@ func Test_Router_DomainMethod(t *testing.T) { }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -177,7 +177,7 @@ func Test_Router_DomainStatus(t *testing.T) { r.Response.WriteStatus(500) }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -267,7 +267,7 @@ func Test_Router_DomainCustomStatusHandler(t *testing.T) { r.Response.Write("404 page") }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -303,7 +303,7 @@ func Test_Router_Domain404(t *testing.T) { r.Response.Write("hello") }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -349,7 +349,7 @@ func Test_Router_DomainGroup(t *testing.T) { }) }) s.SetPort(p) - //s.SetDumpRouteMap(false) + //s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() diff --git a/net/ghttp/ghttp_unit_router_domain_controller_rest_test.go b/net/ghttp/ghttp_unit_router_domain_controller_rest_test.go index cc823682a..40d67de39 100644 --- a/net/ghttp/ghttp_unit_router_domain_controller_rest_test.go +++ b/net/ghttp/ghttp_unit_router_domain_controller_rest_test.go @@ -65,7 +65,7 @@ func Test_Router_DomainControllerRest(t *testing.T) { d := s.Domain("localhost, local") d.BindControllerRest("/", new(DomainControllerRest)) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() diff --git a/net/ghttp/ghttp_unit_router_domain_controller_test.go b/net/ghttp/ghttp_unit_router_domain_controller_test.go index 58e18681f..b63265206 100644 --- a/net/ghttp/ghttp_unit_router_domain_controller_test.go +++ b/net/ghttp/ghttp_unit_router_domain_controller_test.go @@ -47,7 +47,7 @@ func Test_Router_DomainController1(t *testing.T) { s := g.Server(p) s.Domain("localhost, local").BindController("/", new(DomainController)) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -97,7 +97,7 @@ func Test_Router_DomainController2(t *testing.T) { s := g.Server(p) s.Domain("localhost, local").BindController("/controller", new(DomainController), "Show, Info") s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -150,7 +150,7 @@ func Test_Router_DomainControllerMethod(t *testing.T) { s := g.Server(p) s.Domain("localhost, local").BindControllerMethod("/controller-info", new(DomainController), "Info") s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() diff --git a/net/ghttp/ghttp_unit_router_domain_object_rest_test.go b/net/ghttp/ghttp_unit_router_domain_object_rest_test.go index 7d711d282..c726c0c49 100644 --- a/net/ghttp/ghttp_unit_router_domain_object_rest_test.go +++ b/net/ghttp/ghttp_unit_router_domain_object_rest_test.go @@ -60,7 +60,7 @@ func Test_Router_DomainObjectRest(t *testing.T) { d := s.Domain("localhost, local") d.BindObjectRest("/", new(DomainObjectRest)) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() diff --git a/net/ghttp/ghttp_unit_router_domain_object_test.go b/net/ghttp/ghttp_unit_router_domain_object_test.go index f609c739a..95e8ecef5 100644 --- a/net/ghttp/ghttp_unit_router_domain_object_test.go +++ b/net/ghttp/ghttp_unit_router_domain_object_test.go @@ -43,7 +43,7 @@ func Test_Router_DomainObject1(t *testing.T) { s := g.Server(p) s.Domain("localhost, local").BindObject("/", new(DomainObject)) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -92,7 +92,7 @@ func Test_Router_DomainObject2(t *testing.T) { s := g.Server(p) s.Domain("localhost, local").BindObject("/object", new(DomainObject), "Show, Info") s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -143,7 +143,7 @@ func Test_Router_DomainObjectMethod(t *testing.T) { s := g.Server(p) s.Domain("localhost, local").BindObjectMethod("/object-info", new(DomainObject), "Info") s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() diff --git a/net/ghttp/ghttp_unit_router_exit_test.go b/net/ghttp/ghttp_unit_router_exit_test.go index 44de843b5..437aab164 100644 --- a/net/ghttp/ghttp_unit_router_exit_test.go +++ b/net/ghttp/ghttp_unit_router_exit_test.go @@ -31,7 +31,7 @@ func Test_Router_Exit(t *testing.T) { r.Response.Write("test-end") }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -69,7 +69,7 @@ func Test_Router_ExitHook(t *testing.T) { }, }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -107,7 +107,7 @@ func Test_Router_ExitAll(t *testing.T) { }, }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() diff --git a/net/ghttp/ghttp_unit_router_group_group_test.go b/net/ghttp/ghttp_unit_router_group_group_test.go index 74a473560..152b7b5c9 100644 --- a/net/ghttp/ghttp_unit_router_group_group_test.go +++ b/net/ghttp/ghttp_unit_router_group_group_test.go @@ -57,7 +57,7 @@ func Test_Router_Group_Group(t *testing.T) { }) }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() diff --git a/net/ghttp/ghttp_unit_router_group_hook_test.go b/net/ghttp/ghttp_unit_router_group_hook_test.go index 2462ed70c..15a79880e 100644 --- a/net/ghttp/ghttp_unit_router_group_hook_test.go +++ b/net/ghttp/ghttp_unit_router_group_hook_test.go @@ -31,7 +31,7 @@ func Test_Router_Group_Hook1(t *testing.T) { }, ghttp.HOOK_AFTER_SERVE) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -60,7 +60,7 @@ func Test_Router_Group_Hook2(t *testing.T) { }, ghttp.HOOK_AFTER_SERVE) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -91,7 +91,7 @@ func Test_Router_Group_Hook3(t *testing.T) { }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() diff --git a/net/ghttp/ghttp_unit_router_group_rest_test.go b/net/ghttp/ghttp_unit_router_group_rest_test.go index 947a506d8..e0688e1b3 100644 --- a/net/ghttp/ghttp_unit_router_group_rest_test.go +++ b/net/ghttp/ghttp_unit_router_group_rest_test.go @@ -108,7 +108,7 @@ func Test_Router_GroupRest(t *testing.T) { g.REST("/{.struct}/{.method}", ctl) g.REST("/{.struct}/{.method}", obj) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() diff --git a/net/ghttp/ghttp_unit_router_group_test.go b/net/ghttp/ghttp_unit_router_group_test.go index 23bbe370c..b38f95c65 100644 --- a/net/ghttp/ghttp_unit_router_group_test.go +++ b/net/ghttp/ghttp_unit_router_group_test.go @@ -86,7 +86,7 @@ func Test_Router_GroupBasic1(t *testing.T) { group.GET("/obj/my-show", obj, "Show") group.REST("/obj/rest", obj) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -134,7 +134,7 @@ func Test_Router_Basic2(t *testing.T) { {"REST", "/obj/rest", obj}, }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -170,7 +170,7 @@ func Test_Router_GroupBuildInVar(t *testing.T) { group.ALL("/{.struct}/{.method}", ctl) group.ALL("/{.struct}/{.method}", obj) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() diff --git a/net/ghttp/ghttp_unit_router_hook_test.go b/net/ghttp/ghttp_unit_router_hook_test.go index e455ffaae..e7a2daca2 100644 --- a/net/ghttp/ghttp_unit_router_hook_test.go +++ b/net/ghttp/ghttp_unit_router_hook_test.go @@ -29,7 +29,7 @@ func Test_Router_Hook_Basic(t *testing.T) { r.Response.Write("test") }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -70,7 +70,7 @@ func Test_Router_Hook_Fuzzy_Router(t *testing.T) { r.Response.Write(r.Router.Uri) }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -110,7 +110,7 @@ func Test_Router_Hook_Priority(t *testing.T) { }, }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -144,7 +144,7 @@ func Test_Router_Hook_Multi(t *testing.T) { }, }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() diff --git a/net/ghttp/ghttp_unit_router_names_test.go b/net/ghttp/ghttp_unit_router_names_test.go index edaf1502e..c3b975afe 100644 --- a/net/ghttp/ghttp_unit_router_names_test.go +++ b/net/ghttp/ghttp_unit_router_names_test.go @@ -28,7 +28,7 @@ func Test_NameToUri_FullName(t *testing.T) { s.SetNameToUriType(ghttp.URI_TYPE_FULLNAME) s.BindObject("/{.struct}/{.method}", new(NamesObject)) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -49,7 +49,7 @@ func Test_NameToUri_AllLower(t *testing.T) { s.SetNameToUriType(ghttp.URI_TYPE_ALLLOWER) s.BindObject("/{.struct}/{.method}", new(NamesObject)) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -70,7 +70,7 @@ func Test_NameToUri_Camel(t *testing.T) { s.SetNameToUriType(ghttp.URI_TYPE_CAMEL) s.BindObject("/{.struct}/{.method}", new(NamesObject)) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -91,7 +91,7 @@ func Test_NameToUri_Default(t *testing.T) { s.SetNameToUriType(ghttp.URI_TYPE_DEFAULT) s.BindObject("/{.struct}/{.method}", new(NamesObject)) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() diff --git a/net/ghttp/ghttp_unit_router_object_rest1_test.go b/net/ghttp/ghttp_unit_router_object_rest1_test.go index 9d1eec4b3..015687605 100644 --- a/net/ghttp/ghttp_unit_router_object_rest1_test.go +++ b/net/ghttp/ghttp_unit_router_object_rest1_test.go @@ -60,7 +60,7 @@ func Test_Router_ObjectRest(t *testing.T) { s.BindObjectRest("/", new(ObjectRest)) s.BindObjectRest("/{.struct}/{.method}", new(ObjectRest)) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() diff --git a/net/ghttp/ghttp_unit_router_object_rest2_test.go b/net/ghttp/ghttp_unit_router_object_rest2_test.go index 99e8b9197..4db262d22 100644 --- a/net/ghttp/ghttp_unit_router_object_rest2_test.go +++ b/net/ghttp/ghttp_unit_router_object_rest2_test.go @@ -47,7 +47,7 @@ func Test_Router_ObjectRest_Id(t *testing.T) { s := g.Server(p) s.BindObjectRest("/object/:id", new(ObjectRest2)) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() diff --git a/net/ghttp/ghttp_unit_router_object_test.go b/net/ghttp/ghttp_unit_router_object_test.go index 5047cf3ac..fac436fa1 100644 --- a/net/ghttp/ghttp_unit_router_object_test.go +++ b/net/ghttp/ghttp_unit_router_object_test.go @@ -44,7 +44,7 @@ func Test_Router_Object1(t *testing.T) { s.BindObject("/", new(Object)) s.BindObject("/{.struct}/{.method}", new(Object)) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -74,7 +74,7 @@ func Test_Router_Object2(t *testing.T) { s := g.Server(p) s.BindObject("/object", new(Object), "Show, Info") s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -100,7 +100,7 @@ func Test_Router_ObjectMethod(t *testing.T) { s := g.Server(p) s.BindObjectMethod("/object-info", new(Object), "Info") s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() diff --git a/net/ghttp/ghttp_unit_session_test.go b/net/ghttp/ghttp_unit_session_test.go index ebd389c16..ae68e93ec 100644 --- a/net/ghttp/ghttp_unit_session_test.go +++ b/net/ghttp/ghttp_unit_session_test.go @@ -32,7 +32,7 @@ func Test_Session_Cookie(t *testing.T) { r.Session.Clear() }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -79,7 +79,7 @@ func Test_Session_Header(t *testing.T) { r.Session.Clear() }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() @@ -125,7 +125,7 @@ func Test_Session_StorageFile(t *testing.T) { r.Response.Write(r.Session.Get(r.GetString("k"))) }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown() diff --git a/net/ghttp/ghttp_unit_template_test.go b/net/ghttp/ghttp_unit_template_test.go index efa9061e8..2004905cc 100644 --- a/net/ghttp/ghttp_unit_template_test.go +++ b/net/ghttp/ghttp_unit_template_test.go @@ -37,7 +37,7 @@ func Test_Template_Layout1(t *testing.T) { err := r.Response.WriteTpl("layout.html", nil) gtest.Assert(err, nil) }) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.SetPort(p) s.Start() defer s.Shutdown() @@ -73,7 +73,7 @@ func Test_Template_Layout2(t *testing.T) { err := r.Response.WriteTpl("layout.html", nil) gtest.Assert(err, nil) }) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.SetPort(p) s.Start() defer s.Shutdown() diff --git a/net/ghttp/ghttp_unit_websocket_test.go b/net/ghttp/ghttp_unit_websocket_test.go index 572875ac7..74229f90e 100644 --- a/net/ghttp/ghttp_unit_websocket_test.go +++ b/net/ghttp/ghttp_unit_websocket_test.go @@ -37,7 +37,7 @@ func Test_WebSocket(t *testing.T) { } }) s.SetPort(p) - s.SetDumpRouteMap(false) + s.SetDumpRouterMap(false) s.Start() defer s.Shutdown()