Pular para o conteúdo

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.

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 parameter
e.POST("/users", createUser)
e.PUT("/users/:id", updateUser)
e.DELETE("/users/:id", deleteUser)
e.GET("/static/*", serveFiles) // wildcard

Any 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)
PadrãoTipoExemplo correspondente
/users/profileStatic/users/profile
/users/:idParam/users/42
/static/*Wildcard/static/css/app.css

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/metrics
admin.GET("/users", listUsers) // -> /admin/users

Grupos podem ser aninhados para compor árvores de rotas maiores.