body parser
解析HTTP请求接收到的数据,默认支持json
与form
的提交,可以根据应用场景增加各类Decoder以支持更多的数据类型。
NewDefaultBodyParser
创建一个默认的body parser中间件,它包括gzip与json的处理。
e.Use(middleware.NewDefaultBodyParser())
NewGzipDecoder
创建一个gzip数据的decoder
conf := middleware.BodyParserConfig{}
conf.AddDecoder(middleware.NewGzipDecoder())
e.Use(middleware.NewBodyParser(conf))
NewJSONDecoder
创建一个json数据的decoder
conf := middleware.BodyParserConfig{}
conf.AddDecoder(middleware.NewJSONDecoder())
e.Use(middleware.NewBodyParser(conf))
NewFormURLEncodedDecoder
创建一个form数据的decoder(不建议使用)
conf := middleware.BodyParserConfig{
ContentTypeValidate: middleware.DefaultJSONAndFormContentTypeValidate
}
conf.AddDecoder(middleware.NewFormURLEncodedDecoder())
e.Use(middleware.NewBodyParser(conf))
Example
package main
import (
"bytes"
"github.com/vicanso/elton"
"github.com/vicanso/elton/middleware"
)
func main() {
e := elton.New()
e.Use(middleware.NewDefaultBodyParser())
e.POST("/user/login", func(c *elton.Context) (err error) {
c.BodyBuffer = bytes.NewBuffer(c.RequestBody)
return
})
err := e.ListenAndServe(":3000")
if err != nil {
panic(err)
}
}