方法覆盖
Method Override 中间件会从请求中读取被覆盖的方法,并用它代替原始方法。
所有核心中间件都位于 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"),}))方法可以来自 MethodFromHeader、MethodFromForm 或 MethodFromQuery。
MethodOverrideConfig · github.com/labstack/echo/v5@5196b9b
字段说明由英文源码注释生成。
DefaultMethodOverrideConfig = MethodOverrideConfig{ Skipper: DefaultSkipper, Getter: MethodFromHeader(echo.HeaderXHTTPMethodOverride),}Echo 安全更新 (v5.4.0 / v4.16.0)
Section titled “Echo 安全更新 (v5.4.0 / v4.16.0)”请在路由和 CSRF 中间件之前通过 Echo#Pre 注册 MethodOverride。POST 不能再改写为 GET、HEAD、OPTIONS、TRACE 或 CONNECT;请求这些方法时仍保持 POST。