gzip

gzip 中间件为 Flame 实例提供基于 Gzip 的响应流压缩服务。

你可以在 GitHubgzip - 图1在新窗口打开 上阅读该中间件的源码或通过 pkg.go.devgzip - 图2在新窗口打开 查看 API 文档。

下载安装

Go 语言的最低版本要求为 1.16

  1. go get github.com/flamego/gzip

用法示例

gzip.Gzipgzip - 图3在新窗口打开 需要在 其它任何可能写入内容到响应流的中间件之前 被注册:

  1. package main
  2. import (
  3. "github.com/flamego/flamego"
  4. "github.com/flamego/gzip"
  5. )
  6. func main() {
  7. f := flamego.Classic()
  8. f.Use(gzip.Gzip())
  9. f.Get("/", func() string {
  10. return "Hello, Gzip!"
  11. })
  12. f.Run()
  13. }

gzip.Optionsgzip - 图4在新窗口打开 可以被用于配置该中间件的行为:

  1. package main
  2. import (
  3. "github.com/flamego/flamego"
  4. "github.com/flamego/gzip"
  5. )
  6. func main() {
  7. f := flamego.Classic()
  8. f.Use(gzip.Gzip(
  9. gzip.Options{
  10. CompressionLevel: 9, // 最优压缩
  11. },
  12. ))
  13. f.Get("/", func() string {
  14. return "Hello, Gzip!"
  15. })
  16. f.Run()
  17. }