Pular para o conteúdo

Method Override

O middleware Method Override lê o método sobrescrito do request e o usa no lugar do método original.

Todo o middleware principal fica no pacote middleware:

import "github.com/labstack/echo/v5/middleware"
e.Pre(middleware.MethodOverride())
e := echo.New()
e.Pre(middleware.MethodOverrideWithConfig(middleware.MethodOverrideConfig{
Getter: middleware.MethodFromForm("_method"),
}))

O método pode vir de MethodFromHeader, MethodFromForm ou MethodFromQuery.

MethodOverrideConfig · github.com/labstack/echo/v5@5196b9b

As descrições dos campos são geradas dos comentários do código-fonte em inglês.

Campos do código-fonte
CampoTipoDescriçãoCódigo
Skipper Skipper Skipper defines a function to skip middleware. L16
Getter MethodOverrideGetter Getter is a function that gets overridden method from the request. Optional. Default values MethodFromHeader(echo.HeaderXHTTPMethodOverride). L20
Funções do código-fonte
TipoCódigo
func MethodOverride() echo.MiddlewareFunc L44
func MethodOverrideWithConfig(config MethodOverrideConfig) echo.MiddlewareFunc L49
DefaultMethodOverrideConfig = MethodOverrideConfig{
Skipper: DefaultSkipper,
Getter: MethodFromHeader(echo.HeaderXHTTPMethodOverride),
}

Atualização de segurança do Echo (v5.4.0 / v4.16.0)

Seção intitulada “Atualização de segurança do Echo (v5.4.0 / v4.16.0)”

Registre MethodOverride com Echo#Pre, antes do roteamento e do middleware CSRF. Um POST não pode mais ser convertido em GET, HEAD, OPTIONS, TRACE ou CONNECT; nesses casos a requisição continua como POST.