Dalam Gorilla Mux, anda boleh menyepadukan perisian tengah tersuai dengan lancar untuk memintas dan memproses permintaan rangkaian sebelum ia mencapai fungsi pengendali yang ditetapkan.
Untuk mencipta perisian perantara tersuai, tentukan fungsi tertib tinggi yang menerima http.Handler dan mengembalikan http.Handler baharu. Dalam fungsi ini, anda boleh melakukan sebarang operasi yang diperlukan sebelum menyerahkan permintaan kepada pengendali asal.
func Middleware(h http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { log.Println("middleware", r.URL) h.ServeHTTP(w, r) }) }
Setelah anda mencipta middleware anda, kaitkan ia dengan penghala menggunakan http.Handle function.
func main() { r := mux.NewRouter() r.HandleFunc("/", HomeHandler) http.Handle("/", Middleware(r)) }
Ini memastikan bahawa setiap permintaan yang masuk akan melalui middleware sebelum dikendalikan oleh fungsi pengendali yang ditetapkan (HomeHandler dalam contoh ini).
Apabila menggunakan perisian tengah tersuai dengan Gorilla Mux dan gorila/sesi, adalah penting untuk mengelakkan kebocoran memori. Untuk menyelesaikan isu ini, bungkus mux peringkat atas dengan konteks.ClearHandler, seperti yang disyorkan oleh gorila/sesi.
http.ListenAndServe(":"+portstring, context.ClearHandler(r))
Dengan melaksanakan langkah-langkah ini, anda boleh menyepadukan perisian tengah tersuai dengan berkesan ke dalam aplikasi Gorilla Mux anda, meningkatkan minta pemprosesan dan mengelakkan kemungkinan kebocoran memori.
Atas ialah kandungan terperinci Bagaimana untuk Mengintegrasikan dan Mengurus Middleware dengan Berkesan dalam Gorilla Mux?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!