compress
响应数据压缩中间件,可对特定数据类型、数据长度的响应数据做压缩处理。默认支持gzip
压缩,可扩展更多的压缩方式,如:brotli,zstd等。
Compressor
实现自定义的压缩主要实现三下方法:
Accept
判断该压缩是否支持该压缩,根据请求头以及响应数据大小Compress
数据压缩方法Pipe
数据Pipe处理
Example
package main
import (
"bytes"
"github.com/vicanso/elton"
"github.com/vicanso/elton/middleware"
)
func main() {
e := elton.New()
e.Use(middleware.NewDefaultCompress())
e.Use(middleware.NewDefaultResponder())
e.GET("/", func(c *elton.Context) error {
b := new(bytes.Buffer)
for i := 0; i < 1000; i++ {
b.WriteString("Hello, World!")
}
c.Body = &struct {
Message string
}{
b.String(),
}
return nil
})
err := e.ListenAndServe(":3000")
if err != nil {
panic(err)
}
}