web

package
v1.25.0-dev Latest Latest
Warning

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

Go to latest
Published: Apr 28, 2025 License: MIT Imports: 17 Imported by: 24

Documentation

Index

Constants

View Source
const MockAfterMiddlewares = "MockAfterMiddlewares"

MockAfterMiddlewares is a general mock point, it's between middlewares and the handler

Variables

This section is empty.

Functions

func Bind

func Bind[T any](_ T) http.HandlerFunc

Bind binding an obj to a handler's context data

func GetForm

func GetForm(dataStore reqctx.RequestDataStore) any

GetForm returns the validate form information

func RegisterResponseStatusProvider added in v1.21.0

func RegisterResponseStatusProvider[T any](fn func(req *http.Request) types.ResponseStatusProvider)

func RouteMock added in v1.21.0

func RouteMock(pointName string, h any)

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 RouteMockReset added in v1.21.0

func RouteMockReset()

RouteMockReset resets all mock points (no mock anymore)

func RouterMockPoint added in v1.23.0

func RouterMockPoint(pointName string) func(next http.Handler) http.Handler

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

func (*Combo) Delete

func (c *Combo) Delete(h ...any) *Combo

Delete delegates Delete method

func (*Combo) Get

func (c *Combo) Get(h ...any) *Combo

Get delegates Get method

func (*Combo) Patch

func (c *Combo) Patch(h ...any) *Combo

Patch delegates Patch method

func (*Combo) Post

func (c *Combo) Post(h ...any) *Combo

Post delegates Post method

func (*Combo) Put

func (c *Combo) Put(h ...any) *Combo

Put delegates Put method

type Router added in v1.23.0

type Router struct {
	// contains filtered or unexported fields
}

Router defines a route based on chi's router

func NewRouter added in v1.23.0

func NewRouter() *Router

NewRouter creates a new route

func (*Router) Any added in v1.23.0

func (r *Router) Any(pattern string, h ...any)

Any delegate requests for all methods

func (*Router) Combo added in v1.23.0

func (r *Router) Combo(pattern string, h ...any) *Combo

Combo delegates requests to Combo

func (*Router) Delete added in v1.23.0

func (r *Router) Delete(pattern string, h ...any)

Delete delegate delete method

func (*Router) Get added in v1.23.0

func (r *Router) Get(pattern string, h ...any)

Get delegate get method

func (*Router) Group added in v1.23.0

func (r *Router) Group(pattern string, fn func(), middlewares ...any)

Group mounts a sub-Router along a `pattern` string.

func (*Router) Head added in v1.23.0

func (r *Router) Head(pattern string, h ...any)

Head delegate head method

func (*Router) Methods added in v1.23.0

func (r *Router) Methods(methods, pattern string, h ...any)

Methods adds the same handlers for multiple http "methods" (separated by ","). If any method is invalid, the lower level router will panic.

func (*Router) Mount added in v1.23.0

func (r *Router) Mount(pattern string, subRouter *Router)

Mount attaches another Router along ./pattern/*

func (*Router) NotFound added in v1.23.0

func (r *Router) NotFound(h http.HandlerFunc)

NotFound defines a handler to respond whenever a route could not be found.

func (*Router) Patch added in v1.23.0

func (r *Router) Patch(pattern string, h ...any)

Patch delegate patch method

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).

func (*Router) Post added in v1.23.0

func (r *Router) Post(pattern string, h ...any)

Post delegate post method

func (*Router) Put added in v1.23.0

func (r *Router) Put(pattern string, h ...any)

Put delegate put method

func (*Router) ServeHTTP added in v1.23.0

func (r *Router) ServeHTTP(w http.ResponseWriter, req *http.Request)

ServeHTTP implements http.Handler

func (*Router) Use added in v1.23.0

func (r *Router) Use(middlewares ...any)

Use supports two middlewares

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 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).

func (*RouterPathGroup) ServeHTTP

func (g *RouterPathGroup) ServeHTTP(resp http.ResponseWriter, req *http.Request)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL
JackTT - Gopher 🇻🇳