Documentation ¶
Overview ¶
Package binding transforms, with validation, a raw request into a populated structure used by your application logic.
Index ¶
- Constants
- Variables
- func Bind(obj interface{}, ifacePtr ...interface{}) martini.Handler
- func ErrorHandler(errs Errors, resp http.ResponseWriter)
- func Form(formStruct interface{}, ifacePtr ...interface{}) martini.Handler
- func Json(jsonStruct interface{}, ifacePtr ...interface{}) martini.Handler
- func MultipartForm(formStruct interface{}, ifacePtr ...interface{}) martini.Handler
- func Validate(obj interface{}) martini.Handler
- type Errors
- type Validator
Constants ¶
const ( RequireError string = "Required" ContentTypeError string = "ContentTypeError" DeserializationError string = "DeserializationError" IntegerTypeError string = "IntegerTypeError" BooleanTypeError string = "BooleanTypeError" FloatTypeError string = "FloatTypeError" StatusUnprocessableEntity int = 422 )
Variables ¶
var ( // Maximum amount of memory to use when parsing a multipart form. // Set this to whatever value you prefer; default is 10 MB. MaxMemory = int64(1024 * 1024 * 10) )
Functions ¶
func Bind ¶
Bind accepts a copy of an empty struct and populates it with values from the request (if deserialization is successful). It wraps up the functionality of the Form and Json middleware according to the Content-Type and verb of the request. A Content-Type is required for POST and PUT requests. Bind invokes the ErrorHandler middleware to bail out if errors occurred. If you want to perform your own error handling, use Form or Json middleware directly. An interface pointer can be added as a second argument in order to map the struct to a specific interface.
func ErrorHandler ¶
func ErrorHandler(errs Errors, resp http.ResponseWriter)
ErrorHandler simply counts the number of errors in the context and, if more than 0, writes a 400 Bad Request response and a JSON payload describing the errors with the "Content-Type" set to "application/json". Middleware remaining on the stack will not even see the request if, by this point, there are any errors. This is a "default" handler, of sorts, and you are welcome to use your own instead. The Bind middleware invokes this automatically for convenience.
func Form ¶
Form is middleware to deserialize form-urlencoded data from the request. It gets data from the form-urlencoded body, if present, or from the query string. It uses the http.Request.ParseForm() method to perform deserialization, then reflection is used to map each field into the struct with the proper type. Structs with primitive slice types (bool, float, int, string) can support deserialization of repeated form keys, for example: key=val1&key=val2&key=val3 An interface pointer can be added as a second argument in order to map the struct to a specific interface.
func Json ¶
Json is middleware to deserialize a JSON payload from the request into the struct that is passed in. The resulting struct is then validated, but no error handling is actually performed here. An interface pointer can be added as a second argument in order to map the struct to a specific interface.