Documentation
¶
Index ¶
- func Errors(writer http.ResponseWriter, errors []string, code int)
- func IsValidMethod(method string) bool
- func ParamHandler1[T0 any](provider ParameterProvider[T0], handler func(T0, http.ResponseWriter)) http.HandlerFunc
- func ParamHandler2[T0 any, T1 any](provider ParameterProvider[T0], provider1 ParameterProvider[T1], ...) http.HandlerFunc
- func ParamHandler3[T0 any, T1 any, T2 any](provider ParameterProvider[T0], provider1 ParameterProvider[T1], ...) http.HandlerFunc
- func ParamHandler4[T0 any, T1 any, T2 any, T3 any](provider ParameterProvider[T0], provider1 ParameterProvider[T1], ...) http.HandlerFunc
- func ParamHandler5[T0 any, T1 any, T2 any, T3 any, T4 any](provider ParameterProvider[T0], provider1 ParameterProvider[T1], ...) http.HandlerFunc
- func ParamHandler6[T0 any, T1 any, T2 any, T3 any, T4 any, T5 any](provider ParameterProvider[T0], provider1 ParameterProvider[T1], ...) http.HandlerFunc
- func ParamHandler7[T0 any, T1 any, T2 any, T3 any, T4 any, T5 any, T6 any](provider ParameterProvider[T0], provider1 ParameterProvider[T1], ...) http.HandlerFunc
- func ParamHandler8[T0 any, T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any](provider ParameterProvider[T0], provider1 ParameterProvider[T1], ...) http.HandlerFunc
- func ParamHandler9[T0 any, T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any](provider ParameterProvider[T0], provider1 ParameterProvider[T1], ...) http.HandlerFunc
- func ParamHandler10[T0 any, T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any, T9 any](provider ParameterProvider[T0], provider1 ParameterProvider[T1], ...) http.HandlerFunc
- func ParamHandler11[T0 any, T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any, T9 any, ...](provider ParameterProvider[T0], provider1 ParameterProvider[T1], ...) http.HandlerFunc
- func ParamHandler12[T0 any, T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any, T9 any, ...](provider ParameterProvider[T0], provider1 ParameterProvider[T1], ...) http.HandlerFunc
- func ParamHandler13[T0 any, T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any, T9 any, ...](provider ParameterProvider[T0], provider1 ParameterProvider[T1], ...) http.HandlerFunc
- func ParamHandler14[T0 any, T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any, T9 any, ...](provider ParameterProvider[T0], provider1 ParameterProvider[T1], ...) http.HandlerFunc
- func ParamHandler15[T0 any, T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any, T9 any, ...](provider ParameterProvider[T0], provider1 ParameterProvider[T1], ...) http.HandlerFunc
- func ParamHandler16[T0 any, T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any, T9 any, ...](provider ParameterProvider[T0], provider1 ParameterProvider[T1], ...) http.HandlerFunc
- func ParamHandler17[T0 any, T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any, T9 any, ...](provider ParameterProvider[T0], provider1 ParameterProvider[T1], ...) http.HandlerFunc
- func ParamHandler18[T0 any, T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any, T9 any, ...](provider ParameterProvider[T0], provider1 ParameterProvider[T1], ...) http.HandlerFunc
- func ParamHandler19[T0 any, T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any, T9 any, ...](provider ParameterProvider[T0], provider1 ParameterProvider[T1], ...) http.HandlerFunc
- func ParamHandler20[T0 any, T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any, T9 any, ...](provider ParameterProvider[T0], provider1 ParameterProvider[T1], ...) http.HandlerFunc
- func UrlParams(ctx context.Context) map[string]string
- type Middleware
- type Mux
- type ParameterProvider
- func BodyParam() ParameterProvider[io.ReadCloser]
- func ContextParam() ParameterProvider[context.Context]
- func CookieParam[T validate.BasicTypes](name string, validators ...validate.Validator[T]) ParameterProvider[T]
- func FormParam[T validate.BasicTypes](name string, validators ...validate.Validator[T]) ParameterProvider[T]
- func HeaderParam[T validate.BasicTypes](name string, validators ...validate.Validator[T]) ParameterProvider[T]
- func JsonParam[T any](validators ...validate.Validator[*T]) ParameterProvider[*T]
- func MultipartFormParam(maxMemory int64) ParameterProvider[*multipart.Form]
- func PostFormParam[T validate.BasicTypes](name string, validators ...validate.Validator[T]) ParameterProvider[T]
- func RequestParam() ParameterProvider[*http.Request]
- func UrlParam[T validate.BasicTypes](name string, validators ...validate.Validator[T]) ParameterProvider[T]
- type Route
- func Connect(pattern string, handler http.HandlerFunc, attrs ...any) Route
- func Delete(pattern string, handler http.HandlerFunc, attrs ...any) Route
- func Get(pattern string, handler http.HandlerFunc, attrs ...any) Route
- func Handle(method, pattern string, handler http.Handler, attrs ...any) Route
- func Head(pattern string, handler http.HandlerFunc, attrs ...any) Route
- func MatchedRoute(ctx context.Context) Route
- func Options(pattern string, handler http.HandlerFunc, attrs ...any) Route
- func Patch(pattern string, handler http.HandlerFunc, attrs ...any) Route
- func Post(pattern string, handler http.HandlerFunc, attrs ...any) Route
- func Put(pattern string, handler http.HandlerFunc, attrs ...any) Route
- func Trace(pattern string, handler http.HandlerFunc, attrs ...any) Route
- type RoutePattern
- type StackRoutes
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsValidMethod ¶
IsValidMethod checks whether the given HTTP method is valid.
func ParamHandler1 ¶
func ParamHandler1[T0 any]( provider ParameterProvider[T0], handler func(T0, http.ResponseWriter), ) http.HandlerFunc
ParamHandler1 is a handler that takes a single parameter.
func ParamHandler2 ¶
func ParamHandler2[T0 any, T1 any]( provider ParameterProvider[T0], provider1 ParameterProvider[T1], handler func(T0, T1, http.ResponseWriter), ) http.HandlerFunc
ParamHandler2 is a handler that takes two parameters.
func ParamHandler3 ¶
func ParamHandler3[T0 any, T1 any, T2 any]( provider ParameterProvider[T0], provider1 ParameterProvider[T1], provider2 ParameterProvider[T2], handler func(T0, T1, T2, http.ResponseWriter), ) http.HandlerFunc
ParamHandler3 is a handler that takes three parameters.
func ParamHandler4 ¶
func ParamHandler4[T0 any, T1 any, T2 any, T3 any]( provider ParameterProvider[T0], provider1 ParameterProvider[T1], provider2 ParameterProvider[T2], provider3 ParameterProvider[T3], handler func(T0, T1, T2, T3, http.ResponseWriter), ) http.HandlerFunc
ParamHandler4 is a handler that takes four parameters.
func ParamHandler5 ¶
func ParamHandler5[T0 any, T1 any, T2 any, T3 any, T4 any]( provider ParameterProvider[T0], provider1 ParameterProvider[T1], provider2 ParameterProvider[T2], provider3 ParameterProvider[T3], provider4 ParameterProvider[T4], handler func(T0, T1, T2, T3, T4, http.ResponseWriter), ) http.HandlerFunc
ParamHandler5 is a handler that takes five parameters.
func ParamHandler6 ¶
func ParamHandler6[T0 any, T1 any, T2 any, T3 any, T4 any, T5 any]( provider ParameterProvider[T0], provider1 ParameterProvider[T1], provider2 ParameterProvider[T2], provider3 ParameterProvider[T3], provider4 ParameterProvider[T4], provider5 ParameterProvider[T5], handler func(T0, T1, T2, T3, T4, T5, http.ResponseWriter), ) http.HandlerFunc
ParamHandler6 is a handler that takes six parameters.
func ParamHandler7 ¶
func ParamHandler7[T0 any, T1 any, T2 any, T3 any, T4 any, T5 any, T6 any]( provider ParameterProvider[T0], provider1 ParameterProvider[T1], provider2 ParameterProvider[T2], provider3 ParameterProvider[T3], provider4 ParameterProvider[T4], provider5 ParameterProvider[T5], provider6 ParameterProvider[T6], handler func(T0, T1, T2, T3, T4, T5, T6, http.ResponseWriter), ) http.HandlerFunc
ParamHandler7 is a handler that takes seven parameters.
func ParamHandler8 ¶
func ParamHandler8[T0 any, T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any]( provider ParameterProvider[T0], provider1 ParameterProvider[T1], provider2 ParameterProvider[T2], provider3 ParameterProvider[T3], provider4 ParameterProvider[T4], provider5 ParameterProvider[T5], provider6 ParameterProvider[T6], provider7 ParameterProvider[T7], handler func(T0, T1, T2, T3, T4, T5, T6, T7, http.ResponseWriter), ) http.HandlerFunc
ParamHandler8 is a handler that takes eight parameters.
func ParamHandler9 ¶
func ParamHandler9[T0 any, T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any]( provider ParameterProvider[T0], provider1 ParameterProvider[T1], provider2 ParameterProvider[T2], provider3 ParameterProvider[T3], provider4 ParameterProvider[T4], provider5 ParameterProvider[T5], provider6 ParameterProvider[T6], provider7 ParameterProvider[T7], provider8 ParameterProvider[T8], handler func(T0, T1, T2, T3, T4, T5, T6, T7, T8, http.ResponseWriter), ) http.HandlerFunc
ParamHandler9 is a handler that takes nine parameters.
func ParamHandler10 ¶
func ParamHandler10[T0 any, T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any, T9 any]( provider ParameterProvider[T0], provider1 ParameterProvider[T1], provider2 ParameterProvider[T2], provider3 ParameterProvider[T3], provider4 ParameterProvider[T4], provider5 ParameterProvider[T5], provider6 ParameterProvider[T6], provider7 ParameterProvider[T7], provider8 ParameterProvider[T8], provider9 ParameterProvider[T9], handler func(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, http.ResponseWriter), ) http.HandlerFunc
ParamHandler10 is a handler that takes ten parameters.
func ParamHandler11 ¶
func ParamHandler11[T0 any, T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any, T9 any, T10 any]( provider ParameterProvider[T0], provider1 ParameterProvider[T1], provider2 ParameterProvider[T2], provider3 ParameterProvider[T3], provider4 ParameterProvider[T4], provider5 ParameterProvider[T5], provider6 ParameterProvider[T6], provider7 ParameterProvider[T7], provider8 ParameterProvider[T8], provider9 ParameterProvider[T9], provider10 ParameterProvider[T10], handler func(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, http.ResponseWriter), ) http.HandlerFunc
ParamHandler11 is a handler that takes eleven parameters.
func ParamHandler12 ¶
func ParamHandler12[T0 any, T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any, T9 any, T10 any, T11 any]( provider ParameterProvider[T0], provider1 ParameterProvider[T1], provider2 ParameterProvider[T2], provider3 ParameterProvider[T3], provider4 ParameterProvider[T4], provider5 ParameterProvider[T5], provider6 ParameterProvider[T6], provider7 ParameterProvider[T7], provider8 ParameterProvider[T8], provider9 ParameterProvider[T9], provider10 ParameterProvider[T10], provider11 ParameterProvider[T11], handler func(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, http.ResponseWriter), ) http.HandlerFunc
ParamHandler12 is a handler that takes twelve parameters.
func ParamHandler13 ¶
func ParamHandler13[T0 any, T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any, T9 any, T10 any, T11 any, T12 any]( provider ParameterProvider[T0], provider1 ParameterProvider[T1], provider2 ParameterProvider[T2], provider3 ParameterProvider[T3], provider4 ParameterProvider[T4], provider5 ParameterProvider[T5], provider6 ParameterProvider[T6], provider7 ParameterProvider[T7], provider8 ParameterProvider[T8], provider9 ParameterProvider[T9], provider10 ParameterProvider[T10], provider11 ParameterProvider[T11], provider12 ParameterProvider[T12], handler func(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, http.ResponseWriter), ) http.HandlerFunc
ParamHandler13 is a handler that takes thirteen parameters.
func ParamHandler14 ¶
func ParamHandler14[T0 any, T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any, T9 any, T10 any, T11 any, T12 any, T13 any]( provider ParameterProvider[T0], provider1 ParameterProvider[T1], provider2 ParameterProvider[T2], provider3 ParameterProvider[T3], provider4 ParameterProvider[T4], provider5 ParameterProvider[T5], provider6 ParameterProvider[T6], provider7 ParameterProvider[T7], provider8 ParameterProvider[T8], provider9 ParameterProvider[T9], provider10 ParameterProvider[T10], provider11 ParameterProvider[T11], provider12 ParameterProvider[T12], provider13 ParameterProvider[T13], handler func(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, http.ResponseWriter), ) http.HandlerFunc
ParamHandler14 is a handler that takes fourteen parameters.
func ParamHandler15 ¶
func ParamHandler15[T0 any, T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any, T9 any, T10 any, T11 any, T12 any, T13 any, T14 any]( provider ParameterProvider[T0], provider1 ParameterProvider[T1], provider2 ParameterProvider[T2], provider3 ParameterProvider[T3], provider4 ParameterProvider[T4], provider5 ParameterProvider[T5], provider6 ParameterProvider[T6], provider7 ParameterProvider[T7], provider8 ParameterProvider[T8], provider9 ParameterProvider[T9], provider10 ParameterProvider[T10], provider11 ParameterProvider[T11], provider12 ParameterProvider[T12], provider13 ParameterProvider[T13], provider14 ParameterProvider[T14], handler func(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, http.ResponseWriter), ) http.HandlerFunc
ParamHandler15 is a handler that takes fifteen parameters.
func ParamHandler16 ¶
func ParamHandler16[T0 any, T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any, T9 any, T10 any, T11 any, T12 any, T13 any, T14 any, T15 any]( provider ParameterProvider[T0], provider1 ParameterProvider[T1], provider2 ParameterProvider[T2], provider3 ParameterProvider[T3], provider4 ParameterProvider[T4], provider5 ParameterProvider[T5], provider6 ParameterProvider[T6], provider7 ParameterProvider[T7], provider8 ParameterProvider[T8], provider9 ParameterProvider[T9], provider10 ParameterProvider[T10], provider11 ParameterProvider[T11], provider12 ParameterProvider[T12], provider13 ParameterProvider[T13], provider14 ParameterProvider[T14], provider15 ParameterProvider[T15], handler func(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, http.ResponseWriter), ) http.HandlerFunc
ParamHandler16 is a handler that takes sixteen parameters.
func ParamHandler17 ¶
func ParamHandler17[T0 any, T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any, T9 any, T10 any, T11 any, T12 any, T13 any, T14 any, T15 any, T16 any]( provider ParameterProvider[T0], provider1 ParameterProvider[T1], provider2 ParameterProvider[T2], provider3 ParameterProvider[T3], provider4 ParameterProvider[T4], provider5 ParameterProvider[T5], provider6 ParameterProvider[T6], provider7 ParameterProvider[T7], provider8 ParameterProvider[T8], provider9 ParameterProvider[T9], provider10 ParameterProvider[T10], provider11 ParameterProvider[T11], provider12 ParameterProvider[T12], provider13 ParameterProvider[T13], provider14 ParameterProvider[T14], provider15 ParameterProvider[T15], provider16 ParameterProvider[T16], handler func(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, http.ResponseWriter), ) http.HandlerFunc
ParamHandler17 is a handler that takes seventeen parameters.
func ParamHandler18 ¶
func ParamHandler18[T0 any, T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any, T9 any, T10 any, T11 any, T12 any, T13 any, T14 any, T15 any, T16 any, T17 any]( provider ParameterProvider[T0], provider1 ParameterProvider[T1], provider2 ParameterProvider[T2], provider3 ParameterProvider[T3], provider4 ParameterProvider[T4], provider5 ParameterProvider[T5], provider6 ParameterProvider[T6], provider7 ParameterProvider[T7], provider8 ParameterProvider[T8], provider9 ParameterProvider[T9], provider10 ParameterProvider[T10], provider11 ParameterProvider[T11], provider12 ParameterProvider[T12], provider13 ParameterProvider[T13], provider14 ParameterProvider[T14], provider15 ParameterProvider[T15], provider16 ParameterProvider[T16], provider17 ParameterProvider[T17], handler func(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, http.ResponseWriter), ) http.HandlerFunc
ParamHandler18 is a handler that takes eighteen parameters.
func ParamHandler19 ¶
func ParamHandler19[T0 any, T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any, T9 any, T10 any, T11 any, T12 any, T13 any, T14 any, T15 any, T16 any, T17 any, T18 any]( provider ParameterProvider[T0], provider1 ParameterProvider[T1], provider2 ParameterProvider[T2], provider3 ParameterProvider[T3], provider4 ParameterProvider[T4], provider5 ParameterProvider[T5], provider6 ParameterProvider[T6], provider7 ParameterProvider[T7], provider8 ParameterProvider[T8], provider9 ParameterProvider[T9], provider10 ParameterProvider[T10], provider11 ParameterProvider[T11], provider12 ParameterProvider[T12], provider13 ParameterProvider[T13], provider14 ParameterProvider[T14], provider15 ParameterProvider[T15], provider16 ParameterProvider[T16], provider17 ParameterProvider[T17], provider18 ParameterProvider[T18], handler func(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, http.ResponseWriter), ) http.HandlerFunc
ParamHandler19 is a handler that takes nineteen parameters.
func ParamHandler20 ¶
func ParamHandler20[T0 any, T1 any, T2 any, T3 any, T4 any, T5 any, T6 any, T7 any, T8 any, T9 any, T10 any, T11 any, T12 any, T13 any, T14 any, T15 any, T16 any, T17 any, T18 any, T19 any]( provider ParameterProvider[T0], provider1 ParameterProvider[T1], provider2 ParameterProvider[T2], provider3 ParameterProvider[T3], provider4 ParameterProvider[T4], provider5 ParameterProvider[T5], provider6 ParameterProvider[T6], provider7 ParameterProvider[T7], provider8 ParameterProvider[T8], provider9 ParameterProvider[T9], provider10 ParameterProvider[T10], provider11 ParameterProvider[T11], provider12 ParameterProvider[T12], provider13 ParameterProvider[T13], provider14 ParameterProvider[T14], provider15 ParameterProvider[T15], provider16 ParameterProvider[T16], provider17 ParameterProvider[T17], provider18 ParameterProvider[T18], provider19 ParameterProvider[T19], handler func(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, http.ResponseWriter), ) http.HandlerFunc
ParamHandler20 is a handler that takes twenty parameters.
Types ¶
type Middleware ¶
Middleware is a function type that wraps an HTTP handler with additional behavior.
type Mux ¶
type Mux struct {
// contains filtered or unexported fields
}
Mux is an HTTP request multiplexer that routes requests to registered handlers based on method and path pattern.
func (*Mux) Middleware ¶
func (mux *Mux) Middleware(middleware Middleware)
Middleware registers a middleware to be applied to all requests.
type ParameterProvider ¶
type ParameterProvider[T any] interface { GetParamValue(*http.Request) (T, validate.Errors) Optional() ParameterProvider[T] }
ParameterProvider is a provider that can be used to get a parameter value.
func BodyParam ¶
func BodyParam() ParameterProvider[io.ReadCloser]
BodyParam creates a ParameterProvider that returns the raw request body as an io.ReadCloser. This gives direct access to the request body stream, useful for streaming large files, custom parsing, or when you don't want the framework to buffer the entire body.
func ContextParam ¶ added in v1.0.4
func ContextParam() ParameterProvider[context.Context]
ContextParam creates a ParameterProvider that returns the context from the HTTP request.
func CookieParam ¶
func CookieParam[T validate.BasicTypes](name string, validators ...validate.Validator[T]) ParameterProvider[T]
CookieParam creates a ParameterProvider that extracts and validates a cookie value from an HTTP request. The cookie value is parsed into the specified type T (string, int64, or bool) and validated using the provided validators. If no validators are provided, only type parsing is performed.
func FormParam ¶
func FormParam[T validate.BasicTypes](name string, validators ...validate.Validator[T]) ParameterProvider[T]
FormParam creates a ParameterProvider that extracts a form parameter from the HTTP request. It supports validation and can be made optional.
func HeaderParam ¶
func HeaderParam[T validate.BasicTypes](name string, validators ...validate.Validator[T]) ParameterProvider[T]
HeaderParam creates a ParameterProvider that extracts an HTTP header from the request. The header value is retrieved using request.Header.Get(). It supports basic types like string, int, bool, etc. Optional validators can be provided to validate the header value. Use Optional() on the returned provider to make the header optional.
func JsonParam ¶
func JsonParam[T any](validators ...validate.Validator[*T]) ParameterProvider[*T]
JsonParam creates a ParameterProvider that parses JSON from the request body into a struct. The JSON is decoded into the specified type T, and optional validators can be applied to the parsed object.
func MultipartFormParam ¶
func MultipartFormParam(maxMemory int64) ParameterProvider[*multipart.Form]
MultipartFormParam creates a ParameterProvider that parses and returns multipart form data. The maxMemory parameter controls how much of the form data is stored in memory before spilling to temporary files on disk.
func PostFormParam ¶ added in v1.0.4
func PostFormParam[T validate.BasicTypes](name string, validators ...validate.Validator[T]) ParameterProvider[T]
PostFormParam creates a ParameterProvider that extracts a POST form parameter from the HTTP request. It supports validation and can be made optional.
func RequestParam ¶
func RequestParam() ParameterProvider[*http.Request]
RequestParam creates a ParameterProvider that returns the entire HTTP request object. This is useful when you need access to the full request (headers, method, URL, etc.) in addition to or instead of individual parameters.
func UrlParam ¶
func UrlParam[T validate.BasicTypes](name string, validators ...validate.Validator[T]) ParameterProvider[T]
UrlParam creates a ParameterProvider that extracts a URL parameter from the request. The parameter value is retrieved from the URL parameters stored in the request context (set by the router during route matching). It supports basic types like string, int, bool, etc. Optional validators can be provided to validate the parameter value. Use Optional() on the returned provider to make the parameter optional.
type Route ¶
Route defines the interface for an HTTP route with method, pattern, handler, and attributes.
func Connect ¶
func Connect(pattern string, handler http.HandlerFunc, attrs ...any) Route
Connect creates a CONNECT route with the given pattern and handler.
func Delete ¶
func Delete(pattern string, handler http.HandlerFunc, attrs ...any) Route
Delete creates a DELETE route with the given pattern and handler.
func Get ¶
func Get(pattern string, handler http.HandlerFunc, attrs ...any) Route
Get creates a GET route with the given pattern and handler.
func Handle ¶
Handle creates a route with the given HTTP method, pattern, and handler. It validates that the pattern starts with '/', the method is valid, and the handler is not nil.
func Head ¶
func Head(pattern string, handler http.HandlerFunc, attrs ...any) Route
Head creates a HEAD route with the given pattern and handler.
func MatchedRoute ¶
MatchedRoute retrieves the matched route from the request context. Returns the Route that was matched during request routing.
func Options ¶
func Options(pattern string, handler http.HandlerFunc, attrs ...any) Route
Options creates an OPTIONS route with the given pattern and handler.
func Patch ¶
func Patch(pattern string, handler http.HandlerFunc, attrs ...any) Route
Patch creates a PATCH route with the given pattern and handler.
func Post ¶
func Post(pattern string, handler http.HandlerFunc, attrs ...any) Route
Post creates a POST route with the given pattern and handler.
type RoutePattern ¶
RoutePattern represents a compiled route pattern with parameters
func ParseRoutePattern ¶
func ParseRoutePattern(pattern string) (*RoutePattern, error)
ParseRoutePattern converts a route template into a regex pattern and parameter names Supported formats:
- /users/{id}
- /files/{name}/raw
- /posts/{year:\d{4}}/{slug:[^/]+}
- /api/{version}/users/{id:\d+}/profile
- /static/{*:.*} (wildcard parameter for "at the end")
Everything outside {…} is safely regex-escaped Trailing slash is ignored at compile-time; both /path and /path/ are accepted at match-time Wildcard parameters (*) can match any characters including slashes
type StackRoutes ¶
type StackRoutes []Route
StackRoutes is a collection of routes that can be nested and prefixed.
func PrefixRoutes ¶
func PrefixRoutes(prefix string, options ...any) StackRoutes
PrefixRoutes groups the given routes with a common path prefix and attributes into a StackRoutes.
func Routes ¶
func Routes(options ...any) StackRoutes
Routes groups the given routes and attributes into a StackRoutes.