body parser

解析HTTP请求接收到的数据,默认支持jsonform的提交,可以根据应用场景增加各类Decoder以支持更多的数据类型。

NewDefaultBodyParser

创建一个默认的body parser中间件,它包括gzip与json的处理。

  1. e.Use(middleware.NewDefaultBodyParser())

NewGzipDecoder

创建一个gzip数据的decoder

  1. conf := middleware.BodyParserConfig{}
  2. conf.AddDecoder(middleware.NewGzipDecoder())
  3. e.Use(middleware.NewBodyParser(conf))

NewJSONDecoder

创建一个json数据的decoder

  1. conf := middleware.BodyParserConfig{}
  2. conf.AddDecoder(middleware.NewJSONDecoder())
  3. e.Use(middleware.NewBodyParser(conf))

NewFormURLEncodedDecoder

创建一个form数据的decoder(不建议使用)

  1. conf := middleware.BodyParserConfig{
  2. ContentTypeValidate: middleware.DefaultJSONAndFormContentTypeValidate
  3. }
  4. conf.AddDecoder(middleware.NewFormURLEncodedDecoder())
  5. e.Use(middleware.NewBodyParser(conf))

Example

  1. package main
  2. import (
  3. "bytes"
  4. "github.com/vicanso/elton"
  5. "github.com/vicanso/elton/middleware"
  6. )
  7. func main() {
  8. e := elton.New()
  9. e.Use(middleware.NewDefaultBodyParser())
  10. e.POST("/user/login", func(c *elton.Context) (err error) {
  11. c.BodyBuffer = bytes.NewBuffer(c.RequestBody)
  12. return
  13. })
  14. err := e.ListenAndServe(":3000")
  15. if err != nil {
  16. panic(err)
  17. }
  18. }