コンテンツにスキップ

メソッドオーバーライド

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

フィールドの説明は英語のソースコードのコメントから生成されています。

パッケージのソースコードのフィールド
フィールド型説明ソース
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
パッケージのソースコードの関数
型ソース
func MethodOverride() echo.MiddlewareFunc L44
func MethodOverrideWithConfig(config MethodOverrideConfig) echo.MiddlewareFunc L49
DefaultMethodOverrideConfig = MethodOverrideConfig{
Skipper: DefaultSkipper,
Getter: MethodFromHeader(echo.HeaderXHTTPMethodOverride),
}

Echo のセキュリティ更新 (v5.4.0 / v4.16.0)

Section titled “Echo のセキュリティ更新 (v5.4.0 / v4.16.0)”

MethodOverride はルーティングと CSRF ミドルウェアより前に Echo#Pre で登録してください。POST を GET、HEAD、OPTIONS、TRACE、CONNECT に変更することはできません。これらが指定された場合、リクエストは POST のままです。