Context
echo.Context representa o contexto do request HTTP atual. Um ponteiro para ele
(*echo.Context) é passado para todo handler e middleware, carregando o request e a
response, parâmetros de caminho, dados vinculados e helpers para criar responses.
func handler(c *echo.Context) error { // ... return nil}Ler entrada
Seção intitulada “Ler entrada”id := c.Param("id") // path parameterq := c.QueryParam("q") // query string valueall := c.QueryParams() // url.Values of all query paramsname := c.FormValue("name") // form field (URL + body)ua := c.Request().Header.Get(echo.HeaderUserAgent)Há helpers *Or correspondentes que retornam um padrão quando um valor está ausente —
c.ParamOr("id", "0"), c.QueryParamOr("page", "1"), c.FormValueOr(...).
Escrever responses
Seção intitulada “Escrever responses”c.String(http.StatusOK, "plain text")c.JSON(http.StatusOK, payload)c.JSONPretty(http.StatusOK, payload, " ")c.HTML(http.StatusOK, "<b>hi</b>")c.XML(http.StatusOK, payload)c.Blob(http.StatusOK, "application/pdf", bytes)c.Stream(http.StatusOK, "application/octet-stream", reader)c.NoContent(http.StatusNoContent)c.Redirect(http.StatusFound, "/elsewhere")Arquivos
Seção intitulada “Arquivos”c.File("public/report.pdf") // serve a filec.Attachment("invoice.pdf", "inv.pdf") // prompt downloadc.Inline("photo.png", "photo.png") // render inlineArmazenamento por request
Seção intitulada “Armazenamento por request”Compartilhe dados entre middleware e handlers com Get/Set:
c.Set("user", u)u, _ := c.Get("user").(*User)Acesso tipado está disponível por meio dos helpers de generics:
u, err := echo.ContextGet[*User](c, "user")Binding e validação
Seção intitulada “Binding e validação”c.Bind() analisa dados do request em uma struct; veja Binding.
var dto CreateUserif err := c.Bind(&dto); err != nil { return echo.ErrBadRequest}