---
name: Middleware
lang: go
domain: infra
version: "1.0.0"
algebraic: product
definition: "type Middleware func(http.Handler) http.Handler"
description: "Funcion que envuelve un http.Handler para añadir comportamiento (logging, auth, CORS, etc.)."
tags: [http, middleware, server, handler, infra]
uses_types: []
file_path: "functions/infra/http_middleware.go"
---

## Ejemplo

```go
// Middleware que añade un header a cada respuesta
func myMiddleware(next http.Handler) http.Handler {
    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
        w.Header().Set("X-Custom", "value")
        next.ServeHTTP(w, r)
    })
}
```

## Notas

Tipo funcion — aplica el patron decorator sobre http.Handler. Se compone con HTTPMiddlewareChain para apilar comportamiento en orden. Cada Middleware recibe el siguiente handler y retorna un nuevo handler que puede modificar request y response.
