Documentation
¶
Index ¶
- Constants
- func IpCaster(value any) (any, error)
- type Caster
- type DefaultValueFunc
- type Getter
- type Option
- func AddGetter(getter Getter) Option
- func AddValidator(validator Validator) Option
- func WithCookieGetter() Option
- func WithCookieGetterByName(name string) Option
- func WithDefault(value any) Option
- func WithDefaultFunc(defaultFunc DefaultValueFunc) Option
- func WithHeaderGetter() Option
- func WithHeaderGetterByName(name string) Option
- func WithUriGetter() Option
- func WithUriGetterByName(name string) Option
- type Param
- func NewIp(name string, logger logger.Logger) *Param
- func NewParam(name string, logger logger.Logger, caster Caster, options ...Option) *Param
- func NewParamBool(name string, logger logger.Logger, options ...Option) *Param
- func NewParamDuration(name string, logger logger.Logger, options ...Option) *Param
- func NewParamFloat32(name string, logger logger.Logger, options ...Option) *Param
- func NewParamFloat64(name string, logger logger.Logger, options ...Option) *Param
- func NewParamInt(name string, logger logger.Logger, options ...Option) *Param
- func NewParamInt8(name string, logger logger.Logger, options ...Option) *Param
- func NewParamInt16(name string, logger logger.Logger, options ...Option) *Param
- func NewParamInt32(name string, logger logger.Logger, options ...Option) *Param
- func NewParamInt64(name string, logger logger.Logger, options ...Option) *Param
- func NewParamString(name string, logger logger.Logger, options ...Option) *Param
- func NewParamTime(name string, logger logger.Logger, options ...Option) *Param
- func NewParamUint(name string, logger logger.Logger, options ...Option) *Param
- func NewParamUint8(name string, logger logger.Logger, options ...Option) *Param
- func NewParamUint16(name string, logger logger.Logger, options ...Option) *Param
- func NewParamUint32(name string, logger logger.Logger, options ...Option) *Param
- func NewParamUint64(name string, logger logger.Logger, options ...Option) *Param
- type Validator
Constants ¶
const ( // HeaderRealIp is the standard header for real client IP when behind proxies. HeaderRealIp = "X-REAL-IP" // HeaderForwardedFor is the standard header for forwarded client IPs. HeaderForwardedFor = "X-FORWARDED-FOR" )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Caster ¶
Caster converts a raw string value to the desired type. Returns the converted value or an error.
type DefaultValueFunc ¶
type DefaultValueFunc func() any
DefaultValueFunc provides a default value when none is found in the request.
type Option ¶
Option configures a Param during creation.
func AddValidator ¶
AddValidator adds a custom validator function to the parameter.
func WithCookieGetter ¶
func WithCookieGetter() Option
WithCookieGetter adds a getter that extracts the parameter from cookies. Uses the parameter's name as the cookie name.
func WithCookieGetterByName ¶
WithCookieGetterByName adds a getter that extracts from cookies with a custom key.
func WithDefault ¶
WithDefault sets a static default value for the parameter.
func WithDefaultFunc ¶
func WithDefaultFunc(defaultFunc DefaultValueFunc) Option
WithDefaultFunc sets a dynamic default value provider for the parameter.
func WithHeaderGetter ¶
func WithHeaderGetter() Option
WithHeaderGetter adds a getter that extracts the parameter from HTTP headers. Uses the parameter's name as the header key.
func WithHeaderGetterByName ¶
WithHeaderGetterByName adds a getter that extracts from headers with a custom key.
func WithUriGetter ¶
func WithUriGetter() Option
WithUriGetter adds a getter that extracts the parameter from URL query string. Uses the parameter's name as the query key.
func WithUriGetterByName ¶
WithUriGetterByName adds a getter that extracts from URL query with a custom key.
type Param ¶
type Param struct {
// contains filtered or unexported fields
}
Param defines a request parameter with extraction, casting, and validation rules. It implements http.Middleware, injecting the parsed value into the request context.
func NewIp ¶
NewIp creates a parameter for extracting client IP addresses. It checks X-REAL-IP, X-FORWARDED-FOR, and finally RemoteAddr. Returns a net.IP value.
func NewParam ¶
NewParam creates a new Param with the given name, logger, caster, and options. The parameter value will be stored in the request context under the parameter name.
func NewParamBool ¶
NewParamBool creates a new boolean parameter.
func NewParamDuration ¶
NewParamDuration creates a new time.Duration parameter.
func NewParamFloat32 ¶
NewParamFloat32 creates a new float32 parameter.
func NewParamFloat64 ¶
NewParamFloat64 creates a new float64 parameter.
func NewParamInt ¶
NewParamInt creates a new int parameter.
func NewParamInt8 ¶
NewParamInt8 creates a new int8 parameter.
func NewParamInt16 ¶
NewParamInt16 creates a new int16 parameter.
func NewParamInt32 ¶
NewParamInt32 creates a new int32 parameter.
func NewParamInt64 ¶
NewParamInt64 creates a new int64 parameter.
func NewParamString ¶
NewParamString creates a new string parameter.
func NewParamTime ¶
NewParamTime creates a new time.Time parameter. Supports flexible date parsing via github.com/araddon/dateparse.
func NewParamUint ¶
NewParamUint creates a new uint parameter.
func NewParamUint8 ¶
NewParamUint8 creates a new uint8 parameter.
func NewParamUint16 ¶
NewParamUint16 creates a new uint16 parameter.
func NewParamUint32 ¶
NewParamUint32 creates a new uint32 parameter.
func NewParamUint64 ¶
NewParamUint64 creates a new uint64 parameter.
func (*Param) Middleware ¶
Middleware implements http.Middleware. It extracts, casts, validates the parameter and injects it into the request context. If any step fails, it returns an appropriate HTTP error response.