Routing
El router optimizado de Echo hace coincidir URLs de request con handlers usando un árbol radix con cero asignaciones dinámicas de memoria y priorización inteligente de rutas.
Registrar rutas
Sección titulada «Registrar rutas»Usa los helpers de métodos HTTP en la instancia Echo. Cada uno recibe un patrón de path y una
HandlerFunc (func(c *echo.Context) error), con middleware opcional a nivel de ruta.
e := echo.New()
e.GET("/users/:id", getUser) // named parametere.POST("/users", createUser)e.PUT("/users/:id", updateUser)e.DELETE("/users/:id", deleteUser)e.GET("/static/*", serveFiles) // wildcardAny registra un handler para todos los métodos soportados, y Match para un conjunto específico:
e.Any("/ping", pong)e.Match([]string{http.MethodGet, http.MethodPost}, "/form", handleForm)Tipos de coincidencia
Sección titulada «Tipos de coincidencia»| Patrón | Tipo | Ejemplo de coincidencia |
|---|---|---|
/users/profile | Static | /users/profile |
/users/:id | Param | /users/42 |
/static/* | Wildcard | /static/css/app.css |
Parámetros de path
Sección titulada «Parámetros de path»Lee parámetros nombrados desde el contexto con c.Param() (o c.ParamOr() para un valor por defecto):
func getUser(c *echo.Context) error { id := c.Param("id") return c.String(http.StatusOK, id)}El segmento wildcard está disponible como el parámetro *:
e.GET("/files/*", func(c *echo.Context) error { return c.String(http.StatusOK, c.Param("*"))})Agrupa rutas que comparten un prefijo y middleware con e.Group():
admin := e.Group("/admin", middleware.BasicAuth(authFn))admin.GET("/metrics", metrics) // -> /admin/metricsadmin.GET("/users", listUsers) // -> /admin/usersLos grupos pueden anidarse para componer árboles de rutas más grandes.