ホームページ >バックエンド開発 >Golang >Go でミドルウェアからハンドラーにデータを効果的に転送するにはどうすればよいですか?

Go でミドルウェアからハンドラーにデータを効果的に転送するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-09 05:46:02992ブラウズ

How to Effectively Transfer Data from Middleware to Handlers in Go?

ミドルウェアからハンドラーへのデータ転送

現代の Web 開発では、ミドルウェアとハ​​ンドラーが連携してリクエストを処理することがよくあります。コードの重複を避けるには、ミドルウェアからハンドラーにデータを効果的に転送することが重要です。

リクエスト本文からの JWT の解析など、ミドルウェアがデータをインターセプトして準備するシナリオを考えてみましょう。この解析されたデータをハンドラーと共有すると、不要な重複が排除されます。

Gorilla コンテキスト パッケージの使用

Gorilla ツールキットを使用している場合は、そのコンテキスト パッケージを利用します。これにより、メソッド シグネチャを変更せずに、リクエスト コンテキストからデータを設定および取得できるようになります。

// Middleware
http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
    // Middleware operations
    token := jwtParser(r)
    context.Set(r, "token", token)

    next.ServeHTTP(w, r)
})

// Handler
http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
    token := context.Get(r, "token")
})

注: Gorilla コンテキスト パッケージは現在メンテナンス モードになっており、ネイティブ Go コンテキスト。Go 1.7 で導入されたコンテキスト機能。

以上がGo でミドルウェアからハンドラーにデータを効果的に転送するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。