ミドルウェアからハンドラーへのデータ転送
現代の 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 サイトの他の関連記事を参照してください。