Documentation
¶
Index ¶
- Constants
- func CORSMiddleware(config CORSConfig) func(http.Handler) http.Handler
- func CompressionMiddleware(next http.Handler) http.Handler
- func GetTargetHost(r *http.Request) string
- func SecurityMiddleware(config SecurityConfig) func(http.Handler) http.Handler
- type CORSConfig
- type CircuitBreaker
- type LogEntry
- type LogLevel
- type LogStatusWriter
- type LoggingMiddleware
- type LoggingOption
- type Middleware
- type MiddlewareChain
- type RateLimiterMiddleware
- type SecurityConfig
- type ServerHostMiddleware
- type TracingMiddleware
Constants ¶
View Source
const ( BackendKey contextKey = iota RetryKey )
View Source
const TargetHost string = "target_host"
Variables ¶
This section is empty.
Functions ¶
func CORSMiddleware ¶
func CORSMiddleware(config CORSConfig) func(http.Handler) http.Handler
func GetTargetHost ¶
func SecurityMiddleware ¶
func SecurityMiddleware(config SecurityConfig) func(http.Handler) http.Handler
Types ¶
type CORSConfig ¶
type CircuitBreaker ¶
type CircuitBreaker struct {
// contains filtered or unexported fields
}
func NewCircuitBreaker ¶
func NewCircuitBreaker(threshold int, timeout time.Duration) *CircuitBreaker
func (*CircuitBreaker) Middleware ¶
func (cb *CircuitBreaker) Middleware(next http.Handler) http.Handler
type LogEntry ¶
type LogEntry struct {
Timestamp string `json:"timestamp"`
Method string `json:"method"`
Path string `json:"path"`
Status int `json:"status"`
Duration string `json:"duration"`
IP string `json:"ip"`
UserAgent string `json:"user_agent"`
QueryParams map[string]string `json:"query_params,omitempty"`
Headers map[string]string `json:"headers,omitempty"`
Level string `json:"level"`
Error string `json:"error,omitempty"`
}
type LogStatusWriter ¶
type LogStatusWriter struct {
http.ResponseWriter
// contains filtered or unexported fields
}
func (*LogStatusWriter) WriteHeader ¶
func (w *LogStatusWriter) WriteHeader(status int)
type LoggingMiddleware ¶
type LoggingMiddleware struct {
// contains filtered or unexported fields
}
func NewLoggingMiddleware ¶
func NewLoggingMiddleware(logger *log.Logger, opts ...LoggingOption) *LoggingMiddleware
func (*LoggingMiddleware) Middleware ¶
func (l *LoggingMiddleware) Middleware(next http.Handler) http.Handler
type LoggingOption ¶
type LoggingOption func(*LoggingMiddleware)
func WithExcludePaths ¶
func WithExcludePaths(paths []string) LoggingOption
func WithHeaders ¶
func WithHeaders() LoggingOption
func WithLogLevel ¶
func WithLogLevel(level LogLevel) LoggingOption
func WithQueryParams ¶
func WithQueryParams() LoggingOption
type Middleware ¶
func NewRateLimiterMiddleware ¶
func NewRateLimiterMiddleware(rps float64, burst int) Middleware
type MiddlewareChain ¶
type MiddlewareChain struct {
// contains filtered or unexported fields
}
Chain multiple middleware
func NewMiddlewareChain ¶
func NewMiddlewareChain(middlewares ...Middleware) *MiddlewareChain
type RateLimiterMiddleware ¶
type RateLimiterMiddleware struct {
// contains filtered or unexported fields
}
func (*RateLimiterMiddleware) Middleware ¶
func (m *RateLimiterMiddleware) Middleware(next http.Handler) http.Handler
type SecurityConfig ¶
type ServerHostMiddleware ¶
type ServerHostMiddleware struct{}
func NewServerHostMiddleware ¶
func NewServerHostMiddleware() *ServerHostMiddleware
func (*ServerHostMiddleware) Middleware ¶
func (m *ServerHostMiddleware) Middleware(next http.Handler) http.Handler
type TracingMiddleware ¶
type TracingMiddleware struct {
// contains filtered or unexported fields
}
func NewTracingMiddleware ¶
func NewTracingMiddleware(serviceName string) *TracingMiddleware
func (*TracingMiddleware) Middleware ¶
func (t *TracingMiddleware) Middleware(next http.Handler) http.Handler
Click to show internal directories.
Click to hide internal directories.