Rumah >pembangunan bahagian belakang >Golang >Pemintas Golang: sepintas lalu
Ikhtisar: Go interceptor ialah mekanisme yang mengendalikan logik pra dan pasca fungsi yang dilaksanakan melalui perisian perantara. Prinsip: Pemintas dihantar ke fungsi sebagai parameter, dan logik sebelum dan selepas fungsi itu dilaksanakan. Pertempuran Praktikal: Menunjukkan penggunaan pemintas dengan mencipta pemintas yang merekodkan masa permintaan dan mengesahkan parameter permintaan, dan memautkannya kepada pengendali HTTP.
Go Interceptor: Sekilas Pandang
Pengenalan
Pemintas ialah mekanisme yang melakukan beberapa pemprosesan sebelum dan selepas sesuatu fungsi dilaksanakan. Di Golang, pemintas boleh dilaksanakan menggunakan perisian tengah.
Prinsip
Pemintas berfungsi dengan melepasi diri mereka sendiri sebagai parameter kepada fungsi yang akan dipintas. Apabila fungsi dipanggil, pemintas akan melaksanakan logiknya sebelum dan selepas fungsi itu dilaksanakan.
Kes praktikal
Kami mencipta pelayan HTTP mudah untuk menunjukkan cara menggunakan pemintas:
package main import ( "log" "net/http" ) func main() { // 创建一个记录请求时间的拦截器 timeInterceptor := func(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { start := time.Now() defer func() { log.Printf("请求处理耗时:%fs", time.Since(start).Seconds()) }() next.ServeHTTP(w, r) }) } // 创建一个校验请求参数的拦截器 paramInterceptor := func(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { if r.URL.Query().Get("id") == "" { http.Error(w, "缺少参数:id", http.StatusBadRequest) return } next.ServeHTTP(w, r) }) } // 将拦截器与 HTTP 处理程序链接 handler := paramInterceptor(timeInterceptor(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("Hello, World!")) }))) // 启动服务器 log.Fatal(http.ListenAndServe(":8080", handler)) }
Dalam contoh ini, timeInterceptor
拦截器记录请求处理时间,而 paramInterceptor
pemintas mengesahkan parameter permintaan. Dengan merantai pemintas, kami boleh melaksanakan logik ini sebelum dan selepas memproses permintaan.
Ringkasan
Pemintas ialah alat berkuasa untuk meningkatkan fungsi program Golang. Ia membenarkan anda melaksanakan kod tersuai sebelum dan selepas fungsi dijalankan, membolehkan operasi seperti pengelogan, pengesahan dan kebenaran.
Atas ialah kandungan terperinci Pemintas Golang: sepintas lalu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!