Documentation
¶
Index ¶
- Constants
- func GetClientMiddlewares(l *slog.Logger, tracer trace.Tracer, reg prometheus.Registerer) ...
- func GetSSEServerMiddlewares(l *slog.Logger, tracer trace.Tracer, reg prometheus.Registerer) []func(ctx context.Context, req any, ...) (resp any, err error)
- func GetServerMiddlewares(l *slog.Logger, tracer trace.Tracer, reg prometheus.Registerer) []func(ctx context.Context, req any, ...) (resp any, err error)
- func GetServerSecureMiddlewares(l *slog.Logger, tracer trace.Tracer, reg prometheus.Registerer) []func(ctx context.Context, req any, ...) (resp any, err error)
- type ClientMiddleware
- type HeaderCarrier
- type HttpError
- type ServerMiddleware
- func AuthServerMiddleware() ServerMiddleware
- func HeadersServerMiddleware() ServerMiddleware
- func LoggerServerMiddleware(l *slog.Logger) ServerMiddleware
- func MonitoringServerMiddleware(reg prometheus.Registerer) ServerMiddleware
- func RecoveryServerMiddleware() ServerMiddleware
- func ResponseServerMiddleware() ServerMiddleware
- func TimeoutServerMiddleware() ServerMiddleware
- func TracingServerMiddleware(tracer trace.Tracer) ServerMiddleware
- func ValidationServerMiddleware() ServerMiddleware
Constants ¶
const (
ContextAuthToken = "auth_token"
)
Variables ¶
This section is empty.
Functions ¶
func GetClientMiddlewares ¶
func GetClientMiddlewares( l *slog.Logger, tracer trace.Tracer, reg prometheus.Registerer, ) []func(ctx context.Context, req *http.Request, handler func(ctx context.Context, req *http.Request) (resp *http.Response, err error)) (resp *http.Response, err error)
GetClientMiddlewares returns the default client middleware chain.
func GetSSEServerMiddlewares ¶
func GetSSEServerMiddlewares( l *slog.Logger, tracer trace.Tracer, reg prometheus.Registerer, ) []func(ctx context.Context, req any, handler func(ctx context.Context, req any) (resp any, err error)) (resp any, err error)
GetSSEServerMiddlewares returns the server middleware for SSE. ResponseServerMiddleware is excluded, because we shouldn't replace body with error HeadersServerMiddleware is excluded, because headers can't be set after the response TimeoutServerMiddleware is excluded, because it's unary specific
func GetServerMiddlewares ¶
func GetServerMiddlewares( l *slog.Logger, tracer trace.Tracer, reg prometheus.Registerer, ) []func(ctx context.Context, req any, handler func(ctx context.Context, req any) (resp any, err error)) (resp any, err error)
GetServerMiddlewares returns the default server middleware chain.
func GetServerSecureMiddlewares ¶
func GetServerSecureMiddlewares( l *slog.Logger, tracer trace.Tracer, reg prometheus.Registerer, ) []func(ctx context.Context, req any, handler func(ctx context.Context, req any) (resp any, err error)) (resp any, err error)
GetServerSecureMiddlewares returns the server middleware chain with authentication.
Types ¶
type ClientMiddleware ¶
type ClientMiddleware = func(ctx context.Context, req *http.Request, handler func(ctx context.Context, req *http.Request) (resp *http.Response, err error)) (resp *http.Response, err error)
func ErrorClientMiddleware ¶
func ErrorClientMiddleware() ClientMiddleware
ErrorClientMiddleware converts HTTP error responses to Go errors.
func LoggerClientMiddleware ¶
func LoggerClientMiddleware(l *slog.Logger) ClientMiddleware
LoggerClientMiddleware logs outbound requests and responses with slog.
func MonitoringClientMiddleware ¶
func MonitoringClientMiddleware(reg prometheus.Registerer) ClientMiddleware
MonitoringClientMiddleware tracks outbound request metrics with Prometheus.
func TimeoutClientMiddleware ¶
func TimeoutClientMiddleware() ClientMiddleware
TimeoutClientMiddleware sets timeout for outgoing requests.
func TracingClientMiddleware ¶
func TracingClientMiddleware(tracer trace.Tracer) ClientMiddleware
TracingClientMiddleware creates OpenTelemetry spans for outgoing requests.
type HeaderCarrier ¶
HeaderCarrier adapts http.Request headers to OTel propagation.TextMapCarrier.
func (*HeaderCarrier) Get ¶
func (c *HeaderCarrier) Get(key string) string
func (*HeaderCarrier) Keys ¶
func (c *HeaderCarrier) Keys() []string
func (*HeaderCarrier) Set ¶
func (c *HeaderCarrier) Set(key, value string)
type ServerMiddleware ¶
type ServerMiddleware = func(ctx context.Context, req any, handler func(ctx context.Context, req any) (resp any, err error)) (resp any, err error)
func AuthServerMiddleware ¶
func AuthServerMiddleware() ServerMiddleware
AuthServerMiddleware extracts Bearer token from Authorization header.
func HeadersServerMiddleware ¶
func HeadersServerMiddleware() ServerMiddleware
HeadersServerMiddleware sets HTTP status code based on error type.
func LoggerServerMiddleware ¶
func LoggerServerMiddleware(l *slog.Logger) ServerMiddleware
LoggerServerMiddleware logs requests and responses with slog.
func MonitoringServerMiddleware ¶
func MonitoringServerMiddleware(reg prometheus.Registerer) ServerMiddleware
MonitoringServerMiddleware tracks request metrics with Prometheus.
func RecoveryServerMiddleware ¶
func RecoveryServerMiddleware() ServerMiddleware
RecoveryServerMiddleware recovers from panics. Sets status code and response body directly because panic recovery bypasses inner middlewares.
func ResponseServerMiddleware ¶
func ResponseServerMiddleware() ServerMiddleware
ResponseServerMiddleware converts errors to response body.
func TimeoutServerMiddleware ¶
func TimeoutServerMiddleware() ServerMiddleware
TimeoutServerMiddleware sets a timeout for request processing.
func TracingServerMiddleware ¶
func TracingServerMiddleware(tracer trace.Tracer) ServerMiddleware
TracingServerMiddleware creates OpenTelemetry spans for incoming requests.
func ValidationServerMiddleware ¶
func ValidationServerMiddleware() ServerMiddleware
ValidationServerMiddleware validates requests.