---
name: Route
lang: go
domain: infra
version: "1.0.0"
algebraic: product
definition: |
  type Route struct {
      Method  string
      Path    string
      Handler http.Handler
  }
description: "Define una ruta HTTP con metodo, path y handler. Se usa con HTTPRouter para registrar rutas en un ServeMux."
tags: [http, route, server, router, infra]
uses_types: []
file_path: "functions/infra/http_route.go"
---

## Ejemplo

```go
routes := []Route{
    {Method: "GET", Path: "/api/health", Handler: http.HandlerFunc(healthHandler)},
    {Method: "POST", Path: "/api/users", Handler: http.HandlerFunc(createUserHandler)},
}
mux := HTTPRouter(routes)
```

## Notas

Tipo producto — los tres campos son obligatorios. Method debe ser un verbo HTTP valido en mayusculas. Path sigue la sintaxis del ServeMux de Go 1.22+ (soporta parametros como {id}). Handler puede ser cualquier http.Handler o http.HandlerFunc.
