Documentation ¶
Overview ¶
Package group 提供了针对一组路由的操作
Index ¶
- type GroupOf
- func (g *GroupOf[T]) Add(matcher Matcher, r *mux.RouterOf[T])
- func (g *GroupOf[T]) New(name string, matcher Matcher, o ...mux.Option) *mux.RouterOf[T]
- func (g *GroupOf[T]) Remove(name string)
- func (g *GroupOf[T]) Router(name string) *mux.RouterOf[T]
- func (g *GroupOf[T]) Routers() []*mux.RouterOf[T]
- func (g *GroupOf[T]) Routes() map[string]map[string][]string
- func (g *GroupOf[T]) ServeHTTP(w http.ResponseWriter, r *http.Request)
- func (g *GroupOf[T]) Use(m ...types.MiddlewareOf[T])
- type HeaderVersion
- type Hosts
- type Matcher
- type MatcherFunc
- type PathVersion
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type GroupOf ¶
type GroupOf[T any] struct { // contains filtered or unexported fields }
GroupOf 一组路由的集合
func NewOf ¶
func NewOf[T any](call mux.CallOf[T], notFound T, methodNotAllowedBuilder, optionsBuilder types.BuildNodeHandleOf[T], o ...mux.Option) *GroupOf[T]
NewOf 声明 GroupOf 对象
初始化参数与 mux.NewRouterOf 相同,这些参数最终也会被 GroupOf.New 传递给新对象。
func (*GroupOf[T]) Add ¶
Add 添加路由
matcher 用于判断进入 r 的条件,如果为空,则表示不作判断。 如果有多个 matcher 都符合条件,第一个符合条件的 r 获得优胜;
type HeaderVersion ¶
type HeaderVersion struct {
// contains filtered or unexported fields
}
HeaderVersion 匹配报头的版本号
匹配报头 Accept 中的报头信息。
func NewHeaderVersion ¶
func NewHeaderVersion(param, key string, errlog *log.Logger, version ...string) *HeaderVersion
NewHeaderVersion 声明 HeaderVersion 实例
param 将版本号作为参数保存到上下文中时的名称,如果不需要保存参数,可以设置为空值; errlog 错误日志输出通道,如果为空则采用 log.Default; key 表示在 accept 报头中的表示版本号的参数名,如果为空则采用 version; version 版本的值,可能为空,表示匹配任意值;
type Hosts ¶
type Hosts struct {
// contains filtered or unexported fields
}
Hosts 限定域名的匹配工具
func (*Hosts) Add ¶
Add 添加新的域名
域名的格式和路由的语法格式是一样的,比如:
api.example.com {sub:[a-z]+}.example.com
如果存在命名参数,也可以通过也可通过 types.Params 接口获取。 当语法错误时,会触发 panic,可通过 mux.CheckSyntax 检测语法的正确性。
type Matcher ¶
type Matcher interface { // Match 验证请求是否符合当前对象的要求 // // 返回值表示是否匹配成功; // // 如果 Match 返回 false,那么不应当对 *http.Request 和 *types.Context // 所指向的内容作修改,否则可能影响后续的判断。 Match(*http.Request, *types.Context) bool }
Matcher 验证一个请求是否符合要求
Matcher 用于路由项的前置判断,用于对路由项进行归类, 符合同一个 Matcher 的路由项,再各自进行路由。比如按域名进行分组路由。
func AndMatcherFunc ¶
AndMatcherFunc 需同时符合每一个要求
type MatcherFunc ¶
type PathVersion ¶
type PathVersion struct {
// contains filtered or unexported fields
}
PathVersion 匹配路径中的版本号
会修改 [http.Request.URL.Path] 的值,去掉匹配的版本号路径部分,比如:
/v1/path.html
如果匹配 v1 版本,会修改为:
/path.html
func NewPathVersion ¶
func NewPathVersion(param string, version ...string) *PathVersion
NewPathVersion 声明 PathVersion 实例
param 将版本号作为参数保存到上下文中是的名称,如果不需要保存参数,可以设置为空值; version 版本的值,可以为空,表示匹配任意值;