Documentation ¶
Index ¶
- Constants
- Variables
- func Decode(dst interface{}, src map[string][]string) error
- func DecodeJson(body []byte, obj interface{}) error
- func DecodeMsgPack(r io.Reader, obj interface{}) error
- func DecodeProtobuf(body []byte, obj interface{}) error
- func DecodeXml(body []byte, obj interface{}) error
- func DecodeYaml(body []byte, obj interface{}) error
- func IgnoreUnknownKeys(i bool)
- func MapForm(ptr interface{}, set Setter) error
- func MappingByPtr(ptr interface{}, setter Setter, tag string) error
- func PickDecode(v reflect.Value, src map[string][]string) error
- func RegisterConverter(value interface{}, converterFunc reflecti.StringConverter)
- func SetAliasTag(tag string)
- func SetByKV(value reflect.Value, field reflect.StructField, kv Arg, tagValue string, ...) (isSet bool, err error)
- func SetByMultipartFormFile(value reflect.Value, field reflect.StructField, files []*multipart.FileHeader) (isSet bool, err error)
- func SetTag(tag string)
- func Validate(obj interface{}) error
- func ZeroEmpty(z bool)
- type Arg
- type Args
- type Binding
- type BindingBody
- type ConversionError
- type Decoder
- func (d *Decoder) Decode(dst interface{}, src map[string][]string) error
- func (d *Decoder) IgnoreUnknownKeys(i bool)
- func (d *Decoder) PickDecode(v reflect.Value, src map[string][]string) error
- func (d *Decoder) RegisterConverter(value interface{}, converterFunc reflecti.StringConverter)
- func (d *Decoder) SetAliasTag(tag string)
- func (d *Decoder) ZeroEmpty(z bool)
- type EmptyFieldError
- type Encoder
- type FormSource
- type HeaderSource
- type MultipartRequest
- type SetOptions
- type Setter
- type UnknownKeyError
- type UriSource
Constants ¶
const ( MIMEJSON = "application/json" MIMEHTML = "text/html" MIMEXML = "application/xml" MIMEXML2 = "text/xml" MIMEPlain = "text/plain" MIMEPOSTForm = "application/x-www-form-urlencoded" MIMEMultipartPOSTForm = "multipart/form-data" MIMEPROTOBUF = "application/x-protobuf" MIMEMSGPACK = "application/x-msgpack" MIMEMSGPACK2 = "application/msgpack" MIMEYAML = "application/x-yaml" )
Variables ¶
var ( JSON = jsonBinding{} XML = xmlBinding{} Form = formBinding{} Query = queryBinding{} FormPost = formPostBinding{} FormMultipart = formMultipartBinding{} Uri = uriBinding{} ProtoBuf = protobufBinding{} MsgPack = msgpackBinding{} YAML = yamlBinding{} Header = headerBinding{} )
These implement the Binding interface and can be used to bind the data present in the request to struct instances.
var EnableDecoderDisallowUnknownFields = false
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.
var EnableDecoderUseNumber = false
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.
var Tag = "json"
var Validator = validator.DefaultValidator
Validator is the default validator which implements the StructValidator interface. It uses https://github.com/go-playground/validator/tree/v8.18.2 under the hood.
Functions ¶
func DecodeJson ¶
func DecodeMsgPack ¶
func DecodeProtobuf ¶
func DecodeYaml ¶
func IgnoreUnknownKeys ¶
func IgnoreUnknownKeys(i bool)
func MappingByPtr ¶
func RegisterConverter ¶
func RegisterConverter(value interface{}, converterFunc reflecti.StringConverter)
RegisterConverter registers a converter function for a custom type.
func SetAliasTag ¶
func SetAliasTag(tag string)
func SetByKV ¶
func SetByKV(value reflect.Value, field reflect.StructField, kv Arg, tagValue string, opt SetOptions) (isSet bool, err error)
func SetByMultipartFormFile ¶
func SetByMultipartFormFile(value reflect.Value, field reflect.StructField, files []*multipart.FileHeader) (isSet bool, err error)
Types ¶
type Binding ¶
Binding describes the interface which needs to be implemented for binding the data present in the request such as JSON request body, query parameters or the form POST.
type BindingBody ¶
BindingBody adds BindBody method to Binding. BindBody is similar with GinBind, but it reads the body from supplied bytes instead of req.Body.
type ConversionError ¶
type ConversionError struct { Key string // key from the source map. Type reflect.Type // expected type of elem Index int // index for multi-value fields; -1 for single-value fields. Err error // low-level error (when it exists) }
ConversionError stores information about a failed conversion.
func (ConversionError) Error ¶
func (e ConversionError) Error() string
type Decoder ¶
type Decoder struct {
// contains filtered or unexported fields
}
Decoder decodes values from a map[string][]string to a struct.
func DefaultDecoder ¶
func DefaultDecoder() *Decoder
func (*Decoder) Decode ¶
Decode decodes a map[string][]string to a struct.
The first parameter must be a pointer to a struct.
The second parameter is a map, typically url.Values from an HTTP request. Keys are "paths" in dotted notation to the struct fields and nested structs.
See the package documentation for a full explanation of the mechanics.
func (*Decoder) IgnoreUnknownKeys ¶
IgnoreUnknownKeys controls the behaviour when the decoder encounters unknown keys in the map. If i is true and an unknown field is encountered, it is ignored. This is similar to how unknown keys are handled by encoding/json. If i is false then Decode will return an error. Note that any valid keys will still be decoded in to the target struct.
To preserve backwards compatibility, the default value is false.
func (*Decoder) PickDecode ¶
func (*Decoder) RegisterConverter ¶
func (d *Decoder) RegisterConverter(value interface{}, converterFunc reflecti.StringConverter)
RegisterConverter registers a converter function for a custom type.
func (*Decoder) SetAliasTag ¶
SetAliasTag changes the Tag used to locate custom field aliases. The default Tag is "schema".
func (*Decoder) ZeroEmpty ¶
ZeroEmpty controls the behaviour when the decoder encounters empty values in a map. If z is true and a key in the map has the empty string as a value then the corresponding struct field is set to the zero value. If z is false then empty strings are ignored.
The default value is false, that is empty values do not change the value of the struct field.
type EmptyFieldError ¶
type EmptyFieldError struct {
Key string // required key in the source map.
}
EmptyFieldError stores information about an empty required field.
func (EmptyFieldError) Error ¶
func (e EmptyFieldError) Error() string
type Encoder ¶
type Encoder struct {
// contains filtered or unexported fields
}
Encoder encodes values from a struct into url.Values.
func (*Encoder) Encode ¶
Encode encodes a struct into map[string][]string.
Intended for use with url.Values.
func (*Encoder) RegisterEncoder ¶
RegisterEncoder registers a converter for encoding a custom type.
func (*Encoder) SetAliasTag ¶
SetAliasTag changes the Tag used to locate custom field aliases. The default Tag is "schema".
type FormSource ¶
func (FormSource) TrySet ¶
func (form FormSource) TrySet(value reflect.Value, field reflect.StructField, tagValue string, opt SetOptions) (isSet bool, err error)
TrySet tries to set a value by request's form source (like map[string][]string)
type HeaderSource ¶
func (HeaderSource) TrySet ¶
func (hs HeaderSource) TrySet(value reflect.Value, field reflect.StructField, tagValue string, opt SetOptions) (isSet bool, err error)
type MultipartRequest ¶
func (*MultipartRequest) TrySet ¶
func (r *MultipartRequest) TrySet(value reflect.Value, field reflect.StructField, key string, opt SetOptions) (isSet bool, err error)
TrySet tries to set a value by the multipart request with the binding a form file
type SetOptions ¶
type SetOptions struct {
// contains filtered or unexported fields
}
type Setter ¶
type Setter interface {
TrySet(value reflect.Value, field reflect.StructField, key string, opt SetOptions) (isSet bool, err error)
}
Setter tries to set value on a walking by fields of a struct
type UnknownKeyError ¶
type UnknownKeyError struct {
Key string // key from the source map.
}
UnknownKeyError stores information about an unknown key in the source map.
func (UnknownKeyError) Error ¶
func (e UnknownKeyError) Error() string