feat: funciones puras HTTP — HTTPMiddlewareChain y HTTPCORSMiddleware
- HTTPMiddlewareChain: compone N middlewares preservando el orden (el primero es el mas externo) - HTTPCORSMiddleware: genera Middleware con headers CORS configurables, maneja OPTIONS preflight con 204 Ambas son puras (sin I/O) y testeadas con httptest. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
package infra
|
||||
|
||||
import "net/http"
|
||||
|
||||
// HTTPMiddlewareChain compone N middlewares en uno solo aplicandolos de izquierda a derecha.
|
||||
// El primer middleware de la lista es el mas externo (se ejecuta primero).
|
||||
// Si no se pasan middlewares retorna un Middleware que no modifica el handler.
|
||||
func HTTPMiddlewareChain(middlewares ...Middleware) Middleware {
|
||||
return func(final http.Handler) http.Handler {
|
||||
// Aplicar en orden inverso para que el primero quede mas externo
|
||||
h := final
|
||||
for i := len(middlewares) - 1; i >= 0; i-- {
|
||||
h = middlewares[i](h)
|
||||
}
|
||||
return h
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user