httpmw

package module
v0.9.0 Latest Latest
Warning

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

Go to latest
Published: Mar 19, 2026 License: MIT Imports: 5 Imported by: 0

Documentation

Overview

Package httpmw provides stdlib net/http middleware for transport concerns: panic recovery, CORS, request ID injection, and structured request logging.

No authentication or identity logic lives here — see httpauth-firebase for that.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CORS

func CORS(origins []string) func(http.Handler) http.Handler

CORS applies Cross-Origin Resource Sharing headers. origins is the allowed origins list. Pass []string{"*"} for development.

func Recover

func Recover() func(http.Handler) http.Handler

Recover returns a middleware that catches panics, logs them, and returns 500.

func RequestID

func RequestID(generator func() string) func(http.Handler) http.Handler

RequestID injects a unique request ID into the context (via logz.WithRequestID) and the X-Request-ID response header. generator is typically uuid.NewString.

func RequestLogger

func RequestLogger(logger Logger) func(http.Handler) http.Handler

RequestLogger logs each request with method, path, status code, latency, and request ID.

Types

type Logger

type Logger interface {
	Info(msg string, args ...any)
	Error(msg string, err error, args ...any)
	With(args ...any) Logger
}

Logger is the minimal interface httpmw needs — satisfied by logz.Logger via duck typing. httpmw does NOT duck-type the Logger for context purposes (it imports logz for logz.WithRequestID / logz.GetRequestID context helpers).

type StatusRecorder

type StatusRecorder struct {
	http.ResponseWriter
	Status int
}

StatusRecorder wraps http.ResponseWriter to expose the written status code.

func (*StatusRecorder) WriteHeader

func (r *StatusRecorder) WriteHeader(code int)

Jump to

Keyboard shortcuts

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