Routing
O router otimizado do Echo associa URLs de request a handlers usando uma árvore radix com zero alocação dinâmica de memória e priorização inteligente de rotas.
Registrar rotas
Seção intitulada “Registrar rotas”Use os helpers de método HTTP na instância Echo. Cada um recebe um padrão de caminho e um
HandlerFunc (func(c *echo.Context) error), com middleware opcional no nível da rota.
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 um handler para todos os métodos suportados, e Match para um conjunto específico:
e.Any("/ping", pong)e.Match([]string{http.MethodGet, http.MethodPost}, "/form", handleForm)Tipos de correspondência
Seção intitulada “Tipos de correspondência”| Padrão | Tipo | Exemplo correspondente |
|---|---|---|
/users/profile | Static | /users/profile |
/users/:id | Param | /users/42 |
/static/* | Wildcard | /static/css/app.css |
Parâmetros de caminho
Seção intitulada “Parâmetros de caminho”Leia parâmetros nomeados do contexto com c.Param() (ou c.ParamOr() para um valor padrão):
func getUser(c *echo.Context) error { id := c.Param("id") return c.String(http.StatusOK, id)}O segmento wildcard fica disponível como o parâmetro *:
e.GET("/files/*", func(c *echo.Context) error { return c.String(http.StatusOK, c.Param("*"))})Agrupe rotas que compartilham prefixo e middleware com e.Group():
admin := e.Group("/admin", middleware.BasicAuth(authFn))admin.GET("/metrics", metrics) // -> /admin/metricsadmin.GET("/users", listUsers) // -> /admin/usersGrupos podem ser aninhados para compor árvores de rotas maiores.