fastrouter

package module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 4, 2021 License: MIT Imports: 6 Imported by: 0

README

FastRouter

FastRouter是一个快速、轻量级的 fasthttp 路由✨。

GoDoc Build Status

目前使用的http路由器大多都是使用tree数据结构实现路由功能。 而且很多路由集成了不必要的功能,导致依赖越亮越臃肿。

路由说明

三种路由:明确路由、前缀路由和变量路由

  1. 明确路由
a.Get("/a", nil)
a.Get("/b", nil)
a.Get("/d", nil) 
  1. 前缀路由
a.PrefixHandler("GET", "/a", nil)
a.PrefixHandler("GET", "/b", nil)
a.PrefixHandler("GET", "/b/:c", nil) 
  1. 变量路由
a.Get( "/:a", nil)
a.Get("/:a/:b", nil)
a.Get( "/:a/:b/", nil)

核心规则:

  1. 明确的路由定义不能重复
  2. 可以定义变量路由和前缀路由的子路由,有限匹配子路由。
中间件
  1. 全局中间件
a := fastrouter.NewRouter()
a.Use(fastrouter.CorsHandler)
  1. 子路由中间件
a.Get("/", func(ctx *fasthttp.RequestCtx) {
    fmt.Fprintln(ctx, "hello world")
},fastrouter.CorsHandler)

Documentation

Index

Constants

View Source
const (
	SplitPathMAXSize = 100
	URLSep           = "/"
	PathMaxSize      = 8182
)

Variables

This section is empty.

Functions

func CorsHandler

func CorsHandler(ctx *fasthttp.RequestCtx) bool

Types

type FastRouter

type FastRouter struct {
	NotFound   fasthttp.RequestHandler
	NotAllowed fasthttp.RequestHandler
	Recover    func(ctx *fasthttp.RequestCtx, p interface{})
	// contains filtered or unexported fields
}

func NewRouter

func NewRouter() *FastRouter

func (*FastRouter) Any

func (a *FastRouter) Any(urlPath string, handler fasthttp.RequestHandler, preHandler ...PreHandler)

func (*FastRouter) Connect

func (a *FastRouter) Connect(urlPath string, handler fasthttp.RequestHandler, preHandler ...PreHandler)

func (*FastRouter) Delete

func (a *FastRouter) Delete(urlPath string, handler fasthttp.RequestHandler, preHandler ...PreHandler)

func (*FastRouter) Get

func (a *FastRouter) Get(urlPath string, handler fasthttp.RequestHandler, preHandler ...PreHandler)

func (*FastRouter) Handle

func (a *FastRouter) Handle(method string, urlPath string, handler fasthttp.RequestHandler, preHandler ...PreHandler)

func (*FastRouter) Handler

func (a *FastRouter) Handler() func(ctx *fasthttp.RequestCtx)

func (*FastRouter) Head

func (a *FastRouter) Head(urlPath string, handler fasthttp.RequestHandler, preHandler ...PreHandler)

func (*FastRouter) Options

func (a *FastRouter) Options(urlPath string, handler fasthttp.RequestHandler, preHandler ...PreHandler)

func (*FastRouter) Patch

func (a *FastRouter) Patch(urlPath string, handler fasthttp.RequestHandler, preHandler ...PreHandler)

func (*FastRouter) Post

func (a *FastRouter) Post(urlPath string, handler fasthttp.RequestHandler, preHandler ...PreHandler)

func (*FastRouter) PrefixHandler

func (a *FastRouter) PrefixHandler(method string, prefixPath string,
	handler fasthttp.RequestHandler, preHandler ...PreHandler)

func (*FastRouter) Put

func (a *FastRouter) Put(urlPath string, handler fasthttp.RequestHandler, preHandler ...PreHandler)

func (*FastRouter) Routers

func (a *FastRouter) Routers() []string

func (*FastRouter) Static

func (a *FastRouter) Static(prefixPath string, fileRootPath string)

func (*FastRouter) Trace

func (a *FastRouter) Trace(urlPath string, handler fasthttp.RequestHandler, preHandler ...PreHandler)

func (*FastRouter) Use

func (a *FastRouter) Use(handler PreHandler) *FastRouter

type PreHandler

type PreHandler func(ctx *fasthttp.RequestCtx) bool

func BasicAuth

func BasicAuth(requiredUser, requiredPassword string) PreHandler

BasicAuth is the basic auth handler.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL