middleware

package module
v2.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 25, 2020 License: MIT Imports: 1 Imported by: 0

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 文件中找到。

Documentation

Overview

Package middleware 包含了一系列 http.Handler 接口的中间件

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Handler

func Handler(h http.Handler, middleware ...Middleware) http.Handler

Handler 按顺序将所有的中间件应用于 h

func HandlerFunc

func HandlerFunc(h func(w http.ResponseWriter, r *http.Request), middleware ...Middleware) http.Handler

HandlerFunc 按顺序将所有的中间件应用于 h

Types

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

Manager 中间件管理

func NewManager

func NewManager(next http.Handler) *Manager

NewManager 声明新的 Manager 实例

func (*Manager) After

func (mgr *Manager) After(m Middleware) *Manager

After 添加中间件到尾部

func (*Manager) Before

func (mgr *Manager) Before(m Middleware) *Manager

Before 添加中间件到顶部

func (*Manager) Reset

func (mgr *Manager) Reset() *Manager

Reset 清除中间件

func (*Manager) ServeHTTP

func (mgr *Manager) ServeHTTP(w http.ResponseWriter, r *http.Request)

type Middleware

type Middleware func(http.Handler) http.Handler

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

Directories

Path Synopsis
Package auth 验证类的中间件
Package auth 验证类的中间件
basic
Package basic 实现 Basic 校验 https://tools.ietf.org/html/rfc7617
Package basic 实现 Basic 校验 https://tools.ietf.org/html/rfc7617
Package compress 提供一个支持内容压缩的中间件
Package compress 提供一个支持内容压缩的中间件
Package debugger 提供测试和性能测试相关的中间件
Package debugger 提供测试和性能测试相关的中间件
Package errorhandler 提供自定义错误处理功能 net/http 包中对于错误的处理是通过 http.Error() 进行的, 我们无法直接修改该方法,实现自定义的错误处理功能。
Package errorhandler 提供自定义错误处理功能 net/http 包中对于错误的处理是通过 http.Error() 进行的, 我们无法直接修改该方法,实现自定义的错误处理功能。
Package header 用于指定输出的报头
Package header 用于指定输出的报头
Package health API 状态检测
Package health API 状态检测
Package host 提供了限定访问域名的中间件
Package host 提供了限定访问域名的中间件
Package ratelimit 提供了 X-Rate-Limit 功能的中间件 X-Rate-Limit-Limit: 同一个时间段所允许的请求的最大数目; X-Rate-Limit-Remaining: 在当前时间段内剩余的请求的数量; X-Rate-Limit-Reset: 为了得到最大请求数所等待的秒数。
Package ratelimit 提供了 X-Rate-Limit 功能的中间件 X-Rate-Limit-Limit: 同一个时间段所允许的请求的最大数目; X-Rate-Limit-Remaining: 在当前时间段内剩余的请求的数量; X-Rate-Limit-Reset: 为了得到最大请求数所等待的秒数。
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 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 提供一个限定版本号的中间件
Package version 提供一个限定版本号的中间件

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL