mirror of
https://gitee.com/johng/gf
synced 2026-07-06 21:45:34 +08:00
router group developing
This commit is contained in:
@ -21,16 +21,16 @@ import (
|
||||
|
||||
// 解析pattern
|
||||
func (s *Server)parsePattern(pattern string) (domain, method, uri string, err error) {
|
||||
uri = pattern
|
||||
uri = strings.TrimSpace(pattern)
|
||||
domain = gDEFAULT_DOMAIN
|
||||
method = gDEFAULT_METHOD
|
||||
if array, err := gregex.MatchString(`([a-zA-Z]+):(.+)`, pattern); len(array) > 1 && err == nil {
|
||||
method = array[1]
|
||||
uri = array[2]
|
||||
if array, err := gregex.MatchString(`(.+):(.+)`, pattern); len(array) > 1 && err == nil {
|
||||
method = strings.TrimSpace(array[1])
|
||||
uri = strings.TrimSpace(array[2])
|
||||
}
|
||||
if array, err := gregex.MatchString(`(.+)@([\w\.\-]+)`, uri); len(array) > 1 && err == nil {
|
||||
uri = array[1]
|
||||
domain = array[2]
|
||||
if array, err := gregex.MatchString(`(.+)@(.+)`, uri); len(array) > 1 && err == nil {
|
||||
uri = strings.TrimSpace(array[1])
|
||||
domain = strings.TrimSpace(array[2])
|
||||
}
|
||||
if uri == "" {
|
||||
err = errors.New("invalid pattern")
|
||||
|
||||
82
g/net/ghttp/ghttp_server_router_group.go
Normal file
82
g/net/ghttp/ghttp_server_router_group.go
Normal file
@ -0,0 +1,82 @@
|
||||
// Copyright 2018 gf Author(https://gitee.com/johng/gf). All Rights Reserved.
|
||||
//
|
||||
// This Source Code Form is subject to the terms of the MIT License.
|
||||
// If a copy of the MIT was not distributed with this file,
|
||||
// You can obtain one at https://gitee.com/johng/gf.
|
||||
// 分组路由管理.
|
||||
|
||||
package ghttp
|
||||
|
||||
// 分组路由对象
|
||||
type RouterGroup struct {
|
||||
server *Server // Web Server
|
||||
prefix string // URI前缀
|
||||
}
|
||||
|
||||
// 获取分组路由对象
|
||||
func (s *Server) Group(prefix...string) *RouterGroup {
|
||||
if len(prefix) > 0 {
|
||||
return &RouterGroup{
|
||||
server : s,
|
||||
prefix : prefix[0],
|
||||
}
|
||||
}
|
||||
return &RouterGroup{}
|
||||
}
|
||||
|
||||
// REST路由注册
|
||||
func (g *RouterGroup) REST(pattern string, object interface{}) {
|
||||
|
||||
}
|
||||
|
||||
// 绑定所有的HTTP Method请求方式
|
||||
func (g *RouterGroup) ALL(pattern string, params...interface{}) {
|
||||
|
||||
}
|
||||
|
||||
func (g *RouterGroup) GET(pattern string, params...interface{}) {
|
||||
|
||||
}
|
||||
|
||||
func (g *RouterGroup) PUT(pattern string, params...interface{}) {
|
||||
|
||||
}
|
||||
|
||||
func (g *RouterGroup) POST(pattern string, params...interface{}) {
|
||||
|
||||
}
|
||||
|
||||
func (g *RouterGroup) DELETE(pattern string, params...interface{}) {
|
||||
|
||||
}
|
||||
|
||||
func (g *RouterGroup) PATCH(pattern string, params...interface{}) {
|
||||
|
||||
}
|
||||
|
||||
func (g *RouterGroup) HEAD(pattern string, params...interface{}) {
|
||||
|
||||
}
|
||||
|
||||
func (g *RouterGroup) CONNECT(pattern string, params...interface{}) {
|
||||
|
||||
}
|
||||
|
||||
func (g *RouterGroup) OPTIONS(pattern string, params...interface{}) {
|
||||
|
||||
}
|
||||
|
||||
func (g *RouterGroup) TRTACE(pattern string, params...interface{}) {
|
||||
|
||||
}
|
||||
|
||||
// 执行路由绑定
|
||||
func (g *RouterGroup) bind(method string, pattern string, params...interface{}) {
|
||||
|
||||
}
|
||||
|
||||
// 判断给定对象是否控制器对象:
|
||||
// 控制器必须包含以下公开的属性对象:Request/Response/Server/Cookie/Session/View.
|
||||
func (g *RouterGroup) isController(object interface{}) {
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user