Documentation
¶
Index ¶
- Constants
- func SetHandlerInCtx(ctx Context, h HandlerFunc)
- func WithErrorHandler(handler func(Context, error) error) optionFunc
- func WithNotFoundHandler(handler HandlerFunc) optionFunc
- func WithPrefix(prefix string) optionFunc
- func WithRouterType(typ RouterType) optionFunc
- type App
- func (app *App) Any(pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
- func (app *App) Delete(pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
- func (app *App) ErrorHandler(handler func(Context, error) error)
- func (app *App) Get(pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
- func (app *App) Group(prefix string, middleware ...MiddlewareFunc) *Group
- func (app *App) Handle(method, pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
- func (app *App) Head(pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
- func (app *App) Logger() *slog.Logger
- func (app *App) NotFound(handler HandlerFunc)
- func (app *App) Options(pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
- func (app *App) Patch(pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
- func (app *App) Post(pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
- func (app *App) Put(pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
- func (app *App) ServeHTTP(w http.ResponseWriter, r *http.Request)
- func (app *App) Start(address string) error
- func (app *App) Static(pattern string, root string)
- func (app *App) Use(middleware ...MiddlewareFunc)
- type ChiMux
- func (router *ChiMux) FormatSegment(seg Segment) string
- func (router *ChiMux) Handle(method, pattern string, h HandlerFunc, middleware ...MiddlewareFunc)
- func (router *ChiMux) Match(w http.ResponseWriter, r *http.Request) (HandlerFunc, PathParamsFunc, bool)
- func (router *ChiMux) Use(middlewares ...MiddlewareFunc)
- type Context
- type EchoMux
- func (router *EchoMux) FormatSegment(seg Segment) string
- func (router *EchoMux) Handle(method, pattern string, h HandlerFunc, middleware ...MiddlewareFunc)
- func (router *EchoMux) Match(w http.ResponseWriter, r *http.Request) (HandlerFunc, PathParamsFunc, bool)
- func (router *EchoMux) Use(middlewares ...MiddlewareFunc)
- type ErrorHandlerFunc
- type GinMux
- func (router *GinMux) FormatSegment(seg Segment) string
- func (router *GinMux) Handle(method, pattern string, h HandlerFunc, middleware ...MiddlewareFunc)
- func (router *GinMux) Match(w http.ResponseWriter, r *http.Request) (HandlerFunc, PathParamsFunc, bool)
- func (router *GinMux) Use(middlewares ...MiddlewareFunc)
- type GorillaMux
- func (router *GorillaMux) FormatSegment(seg Segment) string
- func (router *GorillaMux) Handle(method, pattern string, h HandlerFunc, middleware ...MiddlewareFunc)
- func (router *GorillaMux) Match(w http.ResponseWriter, r *http.Request) (HandlerFunc, PathParamsFunc, bool)
- func (router *GorillaMux) Use(middlewares ...MiddlewareFunc)
- type Group
- func (g *Group) Any(pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
- func (g *Group) Delete(pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
- func (g *Group) Get(pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
- func (g *Group) Group(prefix string, middleware ...MiddlewareFunc) *Group
- func (g *Group) Handle(method, pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
- func (g *Group) Head(pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
- func (g *Group) Options(pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
- func (g *Group) Patch(pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
- func (g *Group) Post(pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
- func (g *Group) Put(pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
- func (g *Group) Use(middleware ...MiddlewareFunc)
- type HandlerFunc
- type HttpServeMux
- func (router *HttpServeMux) FormatSegment(seg Segment) string
- func (router *HttpServeMux) Handle(method, pattern string, h HandlerFunc, middleware ...MiddlewareFunc)
- func (router *HttpServeMux) Match(w http.ResponseWriter, r *http.Request) (HandlerFunc, PathParamsFunc, bool)
- func (router *HttpServeMux) Use(middlewares ...MiddlewareFunc)
- type HttprouterMux
- func (router *HttprouterMux) FormatSegment(seg Segment) string
- func (router *HttprouterMux) Handle(method, pattern string, h HandlerFunc, middleware ...MiddlewareFunc)
- func (router *HttprouterMux) Match(w http.ResponseWriter, r *http.Request) (HandlerFunc, PathParamsFunc, bool)
- func (router *HttprouterMux) Use(middlewares ...MiddlewareFunc)
- type HttprouterMuxPathParams
- type MiddlewareFunc
- type PathParams
- type PathParamsFunc
- type Router
- type RouterType
- type Segment
- type SegmentType
- type Skipper
Constants ¶
View Source
const ( HeaderContentType = "Content-Type" HeaderXRequestID = "X-Request-ID" HeaderLocation = "Location" HeaderContentDisposition = "Content-Disposition" )
View Source
const ( ContextKey contextKey = iota PathParamsCtxKey CatchAllPathParamCtxKey PathRawParamsCtxKey HandlerFoundKey RequestIDKey HandlerKey LoggerCtxKey )
View Source
const (
MIMEApplicationJSON = "application/json"
)
Variables ¶
This section is empty.
Functions ¶
func SetHandlerInCtx ¶
func SetHandlerInCtx(ctx Context, h HandlerFunc)
func WithErrorHandler ¶
func WithNotFoundHandler ¶
func WithNotFoundHandler(handler HandlerFunc) optionFunc
func WithPrefix ¶
func WithPrefix(prefix string) optionFunc
func WithRouterType ¶
func WithRouterType(typ RouterType) optionFunc
Types ¶
type App ¶
type App struct {
// contains filtered or unexported fields
}
func (*App) Any ¶
func (app *App) Any(pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
func (*App) Delete ¶
func (app *App) Delete(pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
func (*App) Get ¶
func (app *App) Get(pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
func (*App) Handle ¶
func (app *App) Handle(method, pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
func (*App) Head ¶
func (app *App) Head(pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
func (*App) NotFound ¶
func (app *App) NotFound(handler HandlerFunc)
func (*App) Options ¶
func (app *App) Options(pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
func (*App) Patch ¶
func (app *App) Patch(pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
func (*App) Post ¶
func (app *App) Post(pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
func (*App) Put ¶
func (app *App) Put(pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
func (*App) Use ¶
func (app *App) Use(middleware ...MiddlewareFunc)
type ChiMux ¶
type ChiMux struct {
// contains filtered or unexported fields
}
func (*ChiMux) FormatSegment ¶
func (*ChiMux) Handle ¶
func (router *ChiMux) Handle(method, pattern string, h HandlerFunc, middleware ...MiddlewareFunc)
func (*ChiMux) Match ¶
func (router *ChiMux) Match(w http.ResponseWriter, r *http.Request) (HandlerFunc, PathParamsFunc, bool)
func (*ChiMux) Use ¶
func (router *ChiMux) Use(middlewares ...MiddlewareFunc)
type Context ¶
type Context interface {
Context() context.Context
Request() *http.Request
SetRequest(r *http.Request)
Response() http.ResponseWriter
SetResponse(r http.ResponseWriter)
Get(key interface{}) interface{}
Set(key, value interface{})
Method() string
SetPathParam(fn PathParams)
PathParam(name string) string
QueryParam(name string) string
QueryParams() url.Values
QueryString() string
FormParam(name string) string
FormFile(name string) (*multipart.FileHeader, error)
MultipartForm() (*multipart.Form, error)
Cookie(name string) (*http.Cookie, error)
Cookies() []*http.Cookie
SetCookie(cookie *http.Cookie)
Header(key string) string
SetHeader(key string, value string)
AddHeader(key string, value string)
DelHeader(key string)
Blob(code int, contentType string, b []byte) error
JSON(code int, i interface{}) error
String(code int, s string) error
Stream(code int, contentType string, r io.Reader) error
Redirect(code int, url string) error
Logger() *slog.Logger
Reset(r *http.Request, w http.ResponseWriter, logger *slog.Logger)
}
func NewContext ¶
func NewContext(w http.ResponseWriter, r *http.Request) Context
type EchoMux ¶
type EchoMux struct {
// contains filtered or unexported fields
}
func (*EchoMux) FormatSegment ¶
func (*EchoMux) Handle ¶
func (router *EchoMux) Handle(method, pattern string, h HandlerFunc, middleware ...MiddlewareFunc)
func (*EchoMux) Match ¶
func (router *EchoMux) Match(w http.ResponseWriter, r *http.Request) (HandlerFunc, PathParamsFunc, bool)
func (*EchoMux) Use ¶
func (router *EchoMux) Use(middlewares ...MiddlewareFunc)
type ErrorHandlerFunc ¶
type GinMux ¶
type GinMux struct {
// contains filtered or unexported fields
}
func (*GinMux) FormatSegment ¶
func (*GinMux) Handle ¶
func (router *GinMux) Handle(method, pattern string, h HandlerFunc, middleware ...MiddlewareFunc)
func (*GinMux) Match ¶
func (router *GinMux) Match(w http.ResponseWriter, r *http.Request) (HandlerFunc, PathParamsFunc, bool)
func (*GinMux) Use ¶
func (router *GinMux) Use(middlewares ...MiddlewareFunc)
type GorillaMux ¶
type GorillaMux struct {
// contains filtered or unexported fields
}
func (*GorillaMux) FormatSegment ¶
func (router *GorillaMux) FormatSegment(seg Segment) string
func (*GorillaMux) Handle ¶
func (router *GorillaMux) Handle(method, pattern string, h HandlerFunc, middleware ...MiddlewareFunc)
func (*GorillaMux) Match ¶
func (router *GorillaMux) Match(w http.ResponseWriter, r *http.Request) (HandlerFunc, PathParamsFunc, bool)
func (*GorillaMux) Use ¶
func (router *GorillaMux) Use(middlewares ...MiddlewareFunc)
type Group ¶
type Group struct {
// contains filtered or unexported fields
}
func (*Group) Any ¶
func (g *Group) Any(pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
func (*Group) Delete ¶
func (g *Group) Delete(pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
func (*Group) Get ¶
func (g *Group) Get(pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
func (*Group) Handle ¶
func (g *Group) Handle(method, pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
func (*Group) Head ¶
func (g *Group) Head(pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
func (*Group) Options ¶
func (g *Group) Options(pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
func (*Group) Patch ¶
func (g *Group) Patch(pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
func (*Group) Post ¶
func (g *Group) Post(pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
func (*Group) Put ¶
func (g *Group) Put(pattern string, handler HandlerFunc, middleware ...MiddlewareFunc)
func (*Group) Use ¶
func (g *Group) Use(middleware ...MiddlewareFunc)
type HandlerFunc ¶
func MustGetHandlerFromCtx ¶
func MustGetHandlerFromCtx(ctx Context) HandlerFunc
func WrapHandler ¶
func WrapHandler(h http.Handler) HandlerFunc
WrapHandler wraps `http.Handler` into `echo.HandlerFunc`.
func WrapHandlerFunc ¶
func WrapHandlerFunc(h http.HandlerFunc) HandlerFunc
type HttpServeMux ¶
type HttpServeMux struct {
// contains filtered or unexported fields
}
func (*HttpServeMux) FormatSegment ¶
func (router *HttpServeMux) FormatSegment(seg Segment) string
func (*HttpServeMux) Handle ¶
func (router *HttpServeMux) Handle(method, pattern string, h HandlerFunc, middleware ...MiddlewareFunc)
func (*HttpServeMux) Match ¶
func (router *HttpServeMux) Match(w http.ResponseWriter, r *http.Request) (HandlerFunc, PathParamsFunc, bool)
func (*HttpServeMux) Use ¶
func (router *HttpServeMux) Use(middlewares ...MiddlewareFunc)
type HttprouterMux ¶
type HttprouterMux struct {
// contains filtered or unexported fields
}
func (*HttprouterMux) FormatSegment ¶
func (router *HttprouterMux) FormatSegment(seg Segment) string
func (*HttprouterMux) Handle ¶
func (router *HttprouterMux) Handle(method, pattern string, h HandlerFunc, middleware ...MiddlewareFunc)
func (*HttprouterMux) Match ¶
func (router *HttprouterMux) Match(w http.ResponseWriter, r *http.Request) (HandlerFunc, PathParamsFunc, bool)
func (*HttprouterMux) Use ¶
func (router *HttprouterMux) Use(middlewares ...MiddlewareFunc)
type HttprouterMuxPathParams ¶
type HttprouterMuxPathParams struct {
// contains filtered or unexported fields
}
func (*HttprouterMuxPathParams) Get ¶
func (pp *HttprouterMuxPathParams) Get(name string) string
type MiddlewareFunc ¶
type MiddlewareFunc func(next HandlerFunc) HandlerFunc
func WrapMiddleware ¶
func WrapMiddleware(m func(http.Handler) http.Handler) MiddlewareFunc
type PathParams ¶
func NewHttprouterMuxPathParams ¶
func NewHttprouterMuxPathParams(ctx Context) PathParams
type PathParamsFunc ¶
type PathParamsFunc func(ctx Context) PathParams
type Router ¶
type Router interface {
Use(middleware ...MiddlewareFunc)
Handle(method, pattern string, h HandlerFunc, middleware ...MiddlewareFunc)
Match(w http.ResponseWriter, r *http.Request) (HandlerFunc, PathParamsFunc, bool)
FormatSegment(seg Segment) string
}
type RouterType ¶
type RouterType string
const ( RouterTypeStd RouterType = "net/http" RouterTypeHttprouter RouterType = "julienschmidt/httprouter" RouterTypeGorillaMux RouterType = "gorilla/mux" RouterTypeGin RouterType = "gin-gonic/gin" RouterTypeChi RouterType = "go-chi/chi" RouterTypeEcho RouterType = "labstack/echo" )
type Segment ¶
type Segment struct {
Type SegmentType
Raw string
Name string
}
type SegmentType ¶
type SegmentType int
const ( Static SegmentType = iota // static Param // param CatchAll // wildcard )
Source Files
¶
Click to show internal directories.
Click to hide internal directories.