decoder

package module
v0.0.0-...-d74b515 Latest Latest
Warning

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

Go to latest
Published: Dec 11, 2020 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// ParseErrorIgnoreConversionErrors will ignore any errors caused by strconv.Parse* and use the
	// raw form field value, which is a string, when such a parse error occurs.
	//
	// If the JSON Schema defines `{"ratio": {"type": "number"}}` but `ratio=foobar` then field
	// `ratio` will be handled as a string. If the destination struct is a `json.RawMessage`, then
	// the output will be `{"ratio": "foobar"}`.
	ParseErrorIgnoreConversionErrors parseErrorStrategy = iota + 1

	// ParseErrorUseEmptyValueOnConversionErrors will ignore any parse errors caused by strconv.Parse* and use the
	// default value of the type to be casted, e.g. float64(0), string("").
	//
	// If the JSON Schema defines `{"ratio": {"type": "number"}}` but `ratio=foobar` then field
	// `ratio` will receive the default value for the primitive type (here `0.0` for `number`).
	// If the destination struct is a `json.RawMessage`, then the output will be `{"ratio": 0.0}`.
	ParseErrorUseEmptyValueOnConversionErrors

	// ParseErrorReturnOnConversionErrors will abort and return with an error if strconv.Parse* returns
	// an error.
	//
	// If the JSON Schema defines `{"ratio": {"type": "number"}}` but `ratio=foobar` the parser aborts
	// and returns an error, here: `strconv.ParseFloat: parsing "foobar"`.
	ParseErrorReturnOnConversionErrors
)

Variables

This section is empty.

Functions

This section is empty.

Types

type HTTP

type HTTP struct{}

HTTP decodes json and form-data from HTTP Request Bodies.

func NewHTTP

func NewHTTP() *HTTP

NewHTTP creates a new HTTP decoder.

func (*HTTP) Decode

func (t *HTTP) Decode(r *http.Request, destination interface{}, opts ...HTTPDecoderOption) error

Decode takes a HTTP Request Body and decodes it into destination.

type HTTPDecoderOption

type HTTPDecoderOption func(*httpDecoderOptions)

HTTPDecoderOption configures the HTTP decoder.

func HTTPDecoderAllowedMethods

func HTTPDecoderAllowedMethods(method ...string) HTTPDecoderOption

HTTPDecoderAllowedMethods sets the allowed HTTP methods. Defaults are POST, PUT, PATCH.

func HTTPDecoderJSONFollowsFormFormat

func HTTPDecoderJSONFollowsFormFormat() HTTPDecoderOption

HTTPDecoderJSONFollowsFormFormat if set tells the decoder that JSON follows the same conventions as the form decoder, meaning `{"foo.bar": "..."}` is translated to `{"foo": {"bar": "..."}}`.

func HTTPDecoderSetIgnoreParseErrorsStrategy

func HTTPDecoderSetIgnoreParseErrorsStrategy(strategy parseErrorStrategy) HTTPDecoderOption

HTTPDecoderSetIgnoreParseErrorsStrategy sets a strategy for dealing with strconv.Parse* errors:

- decoderx.ParseErrorIgnoreConversionErrors will ignore any parse errors caused by strconv.Parse* and use the raw form field value, which is a string, when such a parse error occurs. (default) - decoderx.ParseErrorUseEmptyValueOnConversionErrors will ignore any parse errors caused by strconv.Parse* and use the default value of the type to be casted, e.g. float64(0), string(""). - decoderx.ParseErrorReturnOnConversionErrors will abort and return with an error if strconv.Parse* returns an error.

func HTTPDecoderSetMaxCircularReferenceDepth

func HTTPDecoderSetMaxCircularReferenceDepth(depth uint8) HTTPDecoderOption

HTTPDecoderSetMaxCircularReferenceDepth sets the maximum recursive reference resolution depth.

func HTTPDecoderSetValidatePayloads

func HTTPDecoderSetValidatePayloads(validate bool) HTTPDecoderOption

HTTPDecoderSetValidatePayloads sets if payloads should be validated or not.

func HTTPFormDecoder

func HTTPFormDecoder() HTTPDecoderOption

HTTPFormDecoder configures the HTTP decoder to only accept form-data (application/x-www-form-urlencoded, multipart/form-data)

func HTTPJSONDecoder

func HTTPJSONDecoder() HTTPDecoderOption

HTTPJSONDecoder configures the HTTP decoder to only accept form-data (application/json).

func HTTPJSONSchemaCompiler

func HTTPJSONSchemaCompiler(ref string, compiler *jsonschema.Compiler) HTTPDecoderOption

HTTPJSONSchemaCompiler sets a JSON schema to be used for validation and type assertion of incoming requests.

func HTTPRawJSONSchemaCompiler

func HTTPRawJSONSchemaCompiler(raw []byte) (HTTPDecoderOption, error)

HTTPRawJSONSchemaCompiler uses a JSON Schema Compiler with the provided JSON Schema in raw byte form.

func MustHTTPRawJSONSchemaCompiler

func MustHTTPRawJSONSchemaCompiler(raw []byte) HTTPDecoderOption

MustHTTPRawJSONSchemaCompiler uses HTTPRawJSONSchemaCompiler and panics on error.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL