middleware

package
v2.3.1 Latest Latest
Warning

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

Go to latest
Published: Jan 29, 2026 License: MIT Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const DebugCtxKey = "route-debug"

Variables

This section is empty.

Functions

This section is empty.

Types

type CompressionAlgorithm

type CompressionAlgorithm string

CompressionAlgorithm 压缩算法类型

const (
	Gzip    CompressionAlgorithm = "gzip"    // 最广泛兼容
	Deflate CompressionAlgorithm = "deflate" // 基本支持
	Brotli  CompressionAlgorithm = "br"      // 最佳压缩比和性能平衡
)

支持的压缩算法常量

func (CompressionAlgorithm) String

func (c CompressionAlgorithm) String() string

type CompressionConfig

type CompressionConfig struct {
	Enabled             bool     `json:"enabled" yaml:"enabled" ini:"enabled"`                                           // 是否启用压缩
	Level               int      `json:"level" yaml:"level" ini:"level"`                                                 // 压缩级别
	ExcludeContentTypes []string `json:"exclude_content_types" yaml:"exclude_content_types" ini:"exclude_content_types"` // 不需要压缩的 MIME 类型
}

type DebugStdLogger

type DebugStdLogger struct{}

DebugStdLogger 调试日志输出器(将正常日志输出到debug级别) http code >= 500 输出到Stderr,日志等级Fatal http code >= 400 输出的Stderr,日志等级Error http code >= 300 输出到Stdout,日志等级Warn 否则输出到 Stdout,日志等级 Debug(正常日志使用debug级别)

func NewDebugStdLogger

func NewDebugStdLogger() *DebugStdLogger

func (*DebugStdLogger) Write

func (d *DebugStdLogger) Write(l *Logs)

type IPAccessMiddleware

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

func NewIPAccessMiddleware

func NewIPAccessMiddleware() *IPAccessMiddleware

func (*IPAccessMiddleware) AllowIpAccess

func (i *IPAccessMiddleware) AllowIpAccess(next http.Handler) http.Handler

func (*IPAccessMiddleware) Close

func (i *IPAccessMiddleware) Close()

func (*IPAccessMiddleware) DebugIPAccess

func (i *IPAccessMiddleware) DebugIPAccess(next http.Handler) http.Handler

func (*IPAccessMiddleware) DenyIpAccess

func (i *IPAccessMiddleware) DenyIpAccess(next http.Handler) http.Handler

func (*IPAccessMiddleware) SetAllow

func (i *IPAccessMiddleware) SetAllow(allowIPMatch *ipmatch.IPMatcher)

func (*IPAccessMiddleware) SetDebug

func (i *IPAccessMiddleware) SetDebug(debugIPMatch *ipmatch.IPMatcher)

func (*IPAccessMiddleware) SetDeny

func (i *IPAccessMiddleware) SetDeny(denyIPMatch *ipmatch.IPMatcher)

type Logger

type Logger interface {
	Write(l *Logs)
}

Logger 日志接口

type Logs

type Logs struct {
	Status      int           // 响应状态码
	Ip          string        // 请求 IP
	Method      string        // 请求方法
	Uri         string        // 请求 URI
	ContentSize int64         // 响应内容大小
	UserAgent   string        // 用户代理
	Elapsed     time.Duration // 响应耗时,微秒级别
}

Logs 日志内容结构体

type ResponseProcessor

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

func NewResponseProcessor

func NewResponseProcessor() *ResponseProcessor

func (*ResponseProcessor) AddLogHandler

func (c *ResponseProcessor) AddLogHandler(le ...Logger)

AddLogHandler 追加日志事件处理器

func (*ResponseProcessor) Handler

func (c *ResponseProcessor) Handler(next http.Handler) http.Handler

func (*ResponseProcessor) SetCompressionConfig

func (c *ResponseProcessor) SetCompressionConfig(opt CompressionConfig)

SetCompressionConfig 设置压缩配置

type StdLogger

type StdLogger struct{}

StdLogger 日志标准输出器 http code >= 500 输出到Stderr,日志等级Fatal http code >= 400 输出的Stderr,日志等级Error http code >= 300 输出到Stdout,日志等级Warn 否则输出到 Stdout,日志等级 Info

func NewStdLogger

func NewStdLogger() *StdLogger

func (*StdLogger) Write

func (s *StdLogger) Write(l *Logs)

type ZapLogger

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

func NewZapLogger

func NewZapLogger(c *zaploger.Config) (*ZapLogger, error)

func (*ZapLogger) Write

func (z *ZapLogger) Write(l *Logs)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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