Documentation
¶
Index ¶
- func Bind(req *protocol.Request, obj interface{}, pathParams param.Params) error
- func BindAndValidate(req *protocol.Request, obj interface{}, pathParams param.Params) error
- func Validate(obj interface{}) error
- type BindConfig
- func (config *BindConfig) MustRegTypeUnmarshal(t reflect.Type, ...)
- func (config *BindConfig) RegTypeUnmarshal(t reflect.Type, fn inDecoder.CustomizeDecodeFunc) error
- func (config *BindConfig) UseStdJSONUnmarshaler()
- func (config *BindConfig) UseThirdPartyJSONUnmarshaler(fn func(data []byte, v interface{}) error)
- type Binder
- type StructValidator
- type ValidateConfig
- type ValidateErrFactory
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BindAndValidate ¶
BindAndValidate binds data from *protocol.Request to obj and validates them if needed. NOTE:
obj should be a pointer.
Types ¶
type BindConfig ¶ added in v0.7.0
type BindConfig struct { // LooseZeroMode if set to true, // the empty string request parameter is bound to the zero value of parameter. // NOTE: // The default is false. // Suitable for these parameter types: query/header/cookie/form . LooseZeroMode bool // DisableDefaultTag is used to add default tags to a field when it has no tag // If is false, the field with no tag will be added default tags, for more automated binding. But there may be additional overhead. // NOTE: // The default is false. DisableDefaultTag bool // DisableStructFieldResolve is used to generate a separate decoder for a struct. // If is false, the 'struct' field will get a single inDecoder.structTypeFieldTextDecoder, and use json.Unmarshal for decode it. // It usually used to add json string to query parameter. // NOTE: // The default is false. DisableStructFieldResolve bool // EnableDecoderUseNumber is used to call the UseNumber method on the JSON // Decoder instance. UseNumber causes the Decoder to unmarshal a number into an // interface{} as a Number instead of as a float64. // NOTE: // The default is false. // It is used for BindJSON(). EnableDecoderUseNumber bool // EnableDecoderDisallowUnknownFields is used to call the DisallowUnknownFields method // on the JSON Decoder instance. DisallowUnknownFields causes the Decoder to // return an error when the destination is a struct and the input contains object // keys which do not match any non-ignored, exported fields in the destination. // NOTE: // The default is false. // It is used for BindJSON(). EnableDecoderDisallowUnknownFields bool // TypeUnmarshalFuncs registers customized type unmarshaler. // NOTE: // time.Time is registered by default TypeUnmarshalFuncs map[reflect.Type]inDecoder.CustomizeDecodeFunc // Validator is used to validate for BindAndValidate() Validator StructValidator }
BindConfig contains options for default bind behavior.
func NewBindConfig ¶ added in v0.7.0
func NewBindConfig() *BindConfig
func (*BindConfig) MustRegTypeUnmarshal ¶ added in v0.7.0
func (config *BindConfig) MustRegTypeUnmarshal(t reflect.Type, fn func(req *protocol.Request, params param.Params, text string) (reflect.Value, error))
MustRegTypeUnmarshal registers customized type unmarshaler. It will panic if exist error.
func (*BindConfig) RegTypeUnmarshal ¶ added in v0.7.0
func (config *BindConfig) RegTypeUnmarshal(t reflect.Type, fn inDecoder.CustomizeDecodeFunc) error
RegTypeUnmarshal registers customized type unmarshaler.
func (*BindConfig) UseStdJSONUnmarshaler ¶ added in v0.7.0
func (config *BindConfig) UseStdJSONUnmarshaler()
UseStdJSONUnmarshaler uses encoding/json as json library NOTE:
The current version uses encoding/json by default. UseStdJSONUnmarshaler will remain in effect once it has been called.
func (*BindConfig) UseThirdPartyJSONUnmarshaler ¶ added in v0.7.0
func (config *BindConfig) UseThirdPartyJSONUnmarshaler(fn func(data []byte, v interface{}) error)
UseThirdPartyJSONUnmarshaler uses third-party json library for binding NOTE:
UseThirdPartyJSONUnmarshaler will remain in effect once it has been called.
type Binder ¶ added in v0.7.0
type Binder interface { Name() string Bind(*protocol.Request, interface{}, param.Params) error BindAndValidate(*protocol.Request, interface{}, param.Params) error BindQuery(*protocol.Request, interface{}) error BindHeader(*protocol.Request, interface{}) error BindPath(*protocol.Request, interface{}, param.Params) error BindForm(*protocol.Request, interface{}) error BindJSON(*protocol.Request, interface{}) error BindProtobuf(*protocol.Request, interface{}) error }
func DefaultBinder ¶ added in v0.7.0
func DefaultBinder() Binder
func NewDefaultBinder ¶ added in v0.7.0
func NewDefaultBinder(config *BindConfig) Binder
type StructValidator ¶ added in v0.7.0
type StructValidator interface { ValidateStruct(interface{}) error Engine() interface{} ValidateTag() string }
func DefaultValidator ¶ added in v0.7.0
func DefaultValidator() StructValidator
func NewValidator ¶ added in v0.7.0
func NewValidator(config *ValidateConfig) StructValidator
type ValidateConfig ¶ added in v0.7.0
type ValidateConfig struct { ValidateTag string ErrFactory ValidateErrFactory }
func NewValidateConfig ¶ added in v0.7.0
func NewValidateConfig() *ValidateConfig
func (*ValidateConfig) MustRegValidateFunc ¶ added in v0.7.0
func (config *ValidateConfig) MustRegValidateFunc(funcName string, fn func(args ...interface{}) error, force ...bool)
MustRegValidateFunc registers validator function expression. NOTE:
If force=true, allow to cover the existed same funcName. MustRegValidateFunc will remain in effect once it has been called.
func (*ValidateConfig) SetValidatorErrorFactory ¶ added in v0.7.0
func (config *ValidateConfig) SetValidatorErrorFactory(errFactory ValidateErrFactory)
SetValidatorErrorFactory customizes the factory of validation error.
func (*ValidateConfig) SetValidatorTag ¶ added in v0.7.0
func (config *ValidateConfig) SetValidatorTag(tag string)
SetValidatorTag customizes the factory of validation error.
type ValidateErrFactory ¶ added in v0.7.0
Click to show internal directories.
Click to hide internal directories.