From 895f422346578c34111ee9f7feafda7dee914473 Mon Sep 17 00:00:00 2001 From: maidol Date: Sat, 20 Jan 2018 13:10:45 +0800 Subject: [PATCH] add request header binder --- binding.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/binding.go b/binding.go index 21d14a2..057ab9f 100644 --- a/binding.go +++ b/binding.go @@ -96,6 +96,23 @@ func defaultURLBinder(req *http.Request, userStruct FieldMapper) Errors { return bindForm(req, userStruct, req.URL.Query(), nil) } +// Header reads data out of the header into a struct you provide. +// This function invokes data validation after deserialization. +func Header(req *http.Request, userStruct FieldMapper) error { + err := headerBinder(req, userStruct) + if len(err) > 0 { + return err + } + return nil + +} + +var headerBinder requestBinder = defaultHeaderBinder + +func defaultHeaderBinder(req *http.Request, userStruct FieldMapper) Errors { + return bindForm(req, userStruct, req.Header, nil) +} + // MultipartForm reads a multipart form request and deserializes its data and // files into a struct you provide. Files should be deserialized into // *multipart.FileHeader fields.