Documentation
¶
Index ¶
- Constants
- func Bind[T any](_ T) http.HandlerFunc
- func GetForm(dataStore reqctx.RequestDataStore) any
- func RegisterResponseStatusProvider[T any](fn func(req *http.Request) types.ResponseStatusProvider)
- func RouteMock(pointName string, h any) func()
- func RouteMockReset()
- func RouterMockPoint(pointName string) func(next http.Handler) http.Handler
- func SetForm(dataStore reqctx.ContextDataProvider, obj any)
- type Combo
- type Router
- func (r *Router) AfterRouting(middlewares ...any)
- func (r *Router) Any(pattern string, h ...any)
- func (r *Router) BeforeRouting(middlewares ...any)
- func (r *Router) Combo(pattern string, h ...any) *Combo
- func (r *Router) Delete(pattern string, h ...any)
- func (r *Router) Get(pattern string, h ...any)
- func (r *Router) Group(pattern string, fn func(), middlewares ...any)
- func (r *Router) Head(pattern string, h ...any)
- func (r *Router) Methods(methods, pattern string, h ...any)
- func (r *Router) Mount(pattern string, subRouter *Router)
- func (r *Router) NotFound(h http.HandlerFunc)
- func (r *Router) Patch(pattern string, h ...any)
- func (r *Router) PathGroup(pattern string, fn func(g *RouterPathGroup), h ...any)
- func (r *Router) Post(pattern string, h ...any)
- func (r *Router) Put(pattern string, h ...any)
- func (r *Router) ServeHTTP(w http.ResponseWriter, req *http.Request)
- type RouterPathGroup
- func (g *RouterPathGroup) MatchPath(methods, pattern string, h ...any)
- func (g *RouterPathGroup) MatchPattern(methods string, pattern *RouterPathGroupPattern, h ...any)
- func (g *RouterPathGroup) PatternRegexp(pattern string, h ...any) *RouterPathGroupPattern
- func (g *RouterPathGroup) ServeHTTP(resp http.ResponseWriter, req *http.Request)
- type RouterPathGroupPattern
Constants ¶
const MockAfterMiddlewares = "MockAfterMiddlewares"
MockAfterMiddlewares is a general mock point, it's between middlewares and the handler
Variables ¶
This section is empty.
Functions ¶
func GetForm ¶
func GetForm(dataStore reqctx.RequestDataStore) any
GetForm returns the validate form information
func RegisterResponseStatusProvider ¶
func RegisterResponseStatusProvider[T any](fn func(req *http.Request) types.ResponseStatusProvider)
func RouteMock ¶
RouteMock uses the registered mock point to mock the route execution, example:
defer web.RouteMockReset()
web.RouteMock(web.MockAfterMiddlewares, func(ctx *context.Context) {
ctx.WriteResponse(...)
}
Then the mock function will be executed as a middleware at the mock point. It only takes effect in testing mode (setting.IsInTesting == true).
func RouterMockPoint ¶
RouterMockPoint registers a mock point as a middleware for testing, example:
r.Use(web.RouterMockPoint("my-mock-point-1"))
r.Get("/foo", middleware2, web.RouterMockPoint("my-mock-point-2"), middleware2, handler)
Then use web.RouteMock to mock the route execution. It only takes effect in testing mode (setting.IsInTesting == true).
func SetForm ¶
func SetForm(dataStore reqctx.ContextDataProvider, obj any)
SetForm set the form object
Types ¶
type Combo ¶
type Combo struct {
// contains filtered or unexported fields
}
Combo represents a tiny group routes with same pattern
type Router ¶
type Router struct {
// contains filtered or unexported fields
}
Router defines a route based on chi's router
func (*Router) AfterRouting ¶
AfterRouting adds middlewares which will be executed after the request path gets routed It can see the routed path and resolved path parameters
func (*Router) BeforeRouting ¶
BeforeRouting adds middlewares which will be executed before the request path gets routed It should only be used for framework-level global middlewares when it needs to change request method & path.
func (*Router) Methods ¶
Methods adds the same handlers for multiple http "methods" (separated by ","). If any method is invalid, the lower level router will panic.
func (*Router) NotFound ¶
func (r *Router) NotFound(h http.HandlerFunc)
NotFound defines a handler to respond whenever a route could not be found.
func (*Router) PathGroup ¶
func (r *Router) PathGroup(pattern string, fn func(g *RouterPathGroup), h ...any)
PathGroup creates a group of paths which could be matched by regexp. It is only designed to resolve some special cases which chi router can't handle. For most cases, it shouldn't be used because it needs to iterate all rules to find the matched one (inefficient).
type RouterPathGroup ¶
type RouterPathGroup struct {
// contains filtered or unexported fields
}
func (*RouterPathGroup) MatchPath ¶
func (g *RouterPathGroup) MatchPath(methods, pattern string, h ...any)
MatchPath matches the request method, and uses regexp to match the path. The pattern uses "<...>" to define path parameters, for example, "/<name>" (different from chi router) It is only designed to resolve some special cases that chi router can't handle. For most cases, it shouldn't be used because it needs to iterate all rules to find the matched one (inefficient).
func (*RouterPathGroup) MatchPattern ¶
func (g *RouterPathGroup) MatchPattern(methods string, pattern *RouterPathGroupPattern, h ...any)
func (*RouterPathGroup) PatternRegexp ¶
func (g *RouterPathGroup) PatternRegexp(pattern string, h ...any) *RouterPathGroupPattern
func (*RouterPathGroup) ServeHTTP ¶
func (g *RouterPathGroup) ServeHTTP(resp http.ResponseWriter, req *http.Request)
type RouterPathGroupPattern ¶
type RouterPathGroupPattern struct {
// contains filtered or unexported fields
}