Golang ミドルウェアは、HTTP リクエストの処理中にログ記録、権限の検証、エラー処理などの追加機能を提供できる、一般的に使用される設計パターンです。この記事では、Golang ミドルウェアの機能と使い方を深く分析し、具体的なコード例を示して説明します。
ミドルウェアはリクエストとレスポンスを結び付けるコンポーネントであり、リクエストが処理関数に到達する前または後に特定のロジックを実行できます。 Golang では、ミドルウェアは通常、http.HandlerFunc
パラメータを受け取り、新しい http.HandlerFunc
を返す関数です。このようにして、複数のミドルウェアを直列に接続して、リクエストが処理される処理チェーンを形成できます。
func LoggerMiddleware(next http.HandlerFunc) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { log.Printf("[%s] %s "、r.Method、r.RequestURI) 次(w, r) } }
func AuthMiddleware(next http.HandlerFunc) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { if !CheckPermission(r) { http.Error(w, "不正", http.StatusUnauthorized) 戻る } 次(w, r) } }
func main() { マルチプレクサ := http.NewServeMux() mux.HandleFunc("/", AuthMiddleware(LoggerMiddleware(HandleRequest))) http.ListenAndServe(":8080", マルチプレクサ) } func HandleRequest(w http.ResponseWriter, r *http.Request) { w.Write([]byte("Hello, World!")) } func CheckPermission(r *http.Request) bool { // 権限検証のロジックはここにあります trueを返す }
上記のコードでは、ロギング ミドルウェアと権限検証ミドルウェアを定義し、AuthMiddleware(LoggerMiddleware(HandleRequest))
を通じてそれらを直列に接続して、処理チェーン内で各リクエストを形成します。ログ記録と権限検証のプロセスが順番に実行されます。
上記の例を通じて、読者が Golang でのミドルウェアのアプリケーションをよりよく理解できるように、Golang ミドルウェアの機能と使用法を深く分析しました。実際の開発では、ミドルウェアを適切に使用すると、コードの保守性と拡張性が向上するため、非常に推奨される設計パターンです。
以上がGolangミドルウェアの機能と用途を徹底分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。