description
各类常用的中间件

Middlewares

  • basic auth HTTP Basic Auth,建议只用于内部管理系统使用
  • body parser 请求数据的解析中间件,支持application/json以及application/x-www-form-urlencoded两种数据类型
  • compress 数据压缩中间件,默认仅支持gzip。如果需要支持更多的压缩方式,如brotli、snappy、zstd以及lz4,可以使用elton-compress,也可根据需要增加相应的压缩处理
  • concurrent limiter 根据指定参数限制并发请求,可用于订单提交等防止重复提交或限制提交频率的场景
  • error handler 用于将处理函数的Error转换为对应的响应数据,如HTTP响应中的状态码(4xx, 5xx),对应的出错类别等,建议在实际使用中根据项目自定义的Error对象生成相应的响应数据
  • etag 用于生成HTTP响应数据的ETag
  • fresh 判断HTTP请求是否未修改(Not Modified)
  • json picker 用于从响应的JSON中筛选指定字段
  • jwt jwt中间件
  • logger 生成HTTP请求日志,支持从请求头、响应头中获取相应信息
  • proxy Proxy中间件,可定义请求转发至其它的服务
  • recover 捕获程序的panic异常,避免程序崩溃
  • responder 响应处理中间件,用于将Context.Body(interface{})转换为对应的JSON数据并输出。如果系统使用xml等输出响应数据,可参考此中间件实现interface{}至xml的转换
  • response-size-limiter 响应长度限制中间件,用于限制响应数据的最大长度
  • router-concurrent-limiter 路由并发限制中间件,可以针对路由限制并发请求量。
  • session Session中间件,默认支持保存内存中,可自定义相应的存储实现保存至redis等数据库。
  • stats 请求处理的统计中间件,包括处理时长、状态码、响应数据长度、连接数等信息
  • static serve 静态文件处理中间件,默认支持从目录中读取静态文件或实现StaticFile的相关接口,从packr或者数据库(mongodb)等读取文件
  • tracker 可以用于在POST、PUT等提交类的接口中增加跟踪日志,此中间件将输出QueryString,Params以及RequestBody部分,并能将指定的字段做”***“的处理,避免输出敏感信息