Categorygithub.com/issue9/middleware/v2
modulepackage
2.4.0
Repository: https://github.com/issue9/middleware.git
Documentation: pkg.go.dev

# README

middleware Build Status license codecov PkgGoDev

middleware 是实现 http.Handler 接口的中间件,提供了大部分实用的功能。

  • auth 基本的验证处理;
  • compress 对内容进行压缩;
  • errorhandler 处理各类状态码下的输出;
  • header 输出指定的报头;
  • health 接口状态的监测;
  • host 匹配指定的域名;
  • ratelimit x-rate-limit 的相关实现;
  • recovery 对 Panic 的处理;
  • version 匹配从 Accept 报头中的版本号信息;
  • debugger 用于输出测试的中间件;

安装

go get github.com/issue9/middleware/v2

版权

本项目采用 MIT 开源授权许可证,完整的授权说明可在 LICENSE 文件中找到。

# Packages

Package auth 验证类的中间件.
Package compress 提供一个支持内容压缩的中间件.
Package debugger 提供测试和性能测试相关的中间件.
Package errorhandler 提供自定义错误处理功能 net/http 包中对于错误的处理是通过 http.Error() 进行的, 我们无法直接修改该方法,实现自定义的错误处理功能。 只能对 http.ResponseWriter.WriteHeader() 进行自定义, 在指定的状态下,抛出异常,再通过 recover 实现错误处理。 需要注意的是,如果采用了当前包的方案,那么默认情况下, 所有大于 400 的 WriteHeader 操作,都会被 panic, 如果你对某些操作不想按正常流程处理,可以使用 errorhandler.WriteHeader 代替默认的 ResponseWriter.WriteHeader 操作。.
Package header 用于指定输出的报头.
Package health API 状态检测.
Package host 提供了限定访问域名的中间件.
Package ratelimit 提供了 X-Rate-Limit 功能的中间件 X-Rate-Limit-Limit: 同一个时间段所允许的请求的最大数目; X-Rate-Limit-Remaining: 在当前时间段内剩余的请求的数量; X-Rate-Limit-Reset: 为了得到最大请求数所等待的秒数。 store := NewMemory(...) srv := New(store) h = srv.Middleware(h).
Package recovery 提供了处理 panic 操作的中间件 recovery.RecoverFunc(func(w http.ResponseWriter, msg interface{}) { fmt.Printf("recovery: %s", msg) }).MiddlewareFunc(func(w http.ResponseWriter, r *http.Request){ panic("panic") }).
Package version 提供一个限定版本号的中间件.

# Functions

Handler 按顺序将所有的中间件应用于 h.
HandlerFunc 按顺序将所有的中间件应用于 h.
NewManager 声明新的 Manager 实例.

# Structs

Manager 中间件管理.

# Type aliases

Middleware 将一个 http.Handler 封装成另一个 http.Handler.