Rumah > Artikel > pembangunan bahagian belakang > Kaedah pelaksanaan penghalaan dalam bahasa Go
Kaedah pelaksanaan penghalaan dalam bahasa Go, contoh kod khusus diperlukan
Dalam aplikasi web, penghalaan biasanya digunakan untuk menentukan pengendali mana yang harus mengendalikan permintaan yang dikeluarkan oleh pelanggan. Dalam bahasa Go, terdapat berbilang kaedah pelaksanaan penghalaan untuk dipilih. Berikut akan memperkenalkan tiga kaedah pelaksanaan yang biasa digunakan dan menyediakan contoh kod yang sepadan:
Dalam perpustakaan standard bahasa Go, pakej net/http menyediakan pelaksanaan penghala yang agak mudah. Kod berikut menunjukkan cara mendaftar laluan dalam pakej net/http dan mengendalikan permintaan HTTP:
package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/", rootHandler) http.HandleFunc("/hello", helloHandler) http.ListenAndServe(":8000", nil) } func rootHandler(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, "Welcome!") } func helloHandler(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, "Hello, World!") }
Dalam kod di atas, fungsi http.HandleFunc() digunakan untuk mendaftar laluan. Apabila pengendali menerima permintaan, ia sepadan dengan laluan berdasarkan laluan permintaan dan lulus pengendali permintaan sebagai parameter kepada fungsi. Dalam contoh ini, laluan akar '/' akan memanggil fungsi rootHandler() dan laluan '/hello' akan memanggil fungsi helloHandler().
Satu lagi kaedah pelaksanaan penghala bahasa Go yang biasa ialah menggunakan mux perpustakaan pihak ketiga sumber terbuka. Pakej mux menyediakan pelaksanaan penghala yang lebih maju dan skema padanan laluan yang lebih fleksibel. Kod berikut menunjukkan cara menggunakan mux untuk melaksanakan penghalaan:
package main import ( "fmt" "net/http" "github.com/gorilla/mux" ) func main() { r := mux.NewRouter() r.HandleFunc("/", rootHandler) r.HandleFunc("/hello", helloHandler) http.ListenAndServe(":8000", r) } func rootHandler(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, "Welcome!") } func helloHandler(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, "Hello, World!") }
Dalam kod di atas, perpustakaan mux mula-mula diimport dan penghala dibuat menggunakan kaedah mux.NewRouter(). Kemudian daftarkan laluan dengan memanggil kaedah HandleFunc() penghala. Laluan berdaftar ini akan menentukan cara permintaan pelanggan dikendalikan. Akhir sekali, gunakan kaedah http.ListenAndServe() untuk memulakan pelayan web dan tentukan penghala untuk mengendalikan permintaan pelanggan.
Gin Framework ialah rangka kerja web yang ringan dengan reka bentuk yang ringkas dan mudah digunakan. Ia menyediakan banyak pilihan pelaksanaan penghala yang kaya dengan ciri dan menyokong ciri lanjutan seperti perisian tengah. Kod di bawah menunjukkan cara melaksanakan penghalaan dalam rangka kerja Gin:
package main import ( "github.com/gin-gonic/gin" ) func main() { r := gin.Default() r.GET("/", rootHandler) r.GET("/hello", helloHandler) r.Run(":8000") } func rootHandler(c *gin.Context) { c.String(200, "Welcome!") } func helloHandler(c *gin.Context) { c.String(200, "Hello, World!") }
Dalam kod di atas, rangka kerja Gin pertama kali diimport dan tika Gin dicipta menggunakan kaedah gin.Default(). Kemudian daftarkan laluan dengan memanggil kaedah GET() contoh. Laluan ini menentukan cara permintaan pelanggan dikendalikan. Akhir sekali, gunakan kaedah Run() contoh untuk memulakan pelayan web dan nyatakan nombor port untuk mengendalikan permintaan klien.
Ringkasan
Dalam artikel ini, kami memperkenalkan tiga kaedah pelaksanaan penghalaan yang biasa digunakan dalam bahasa Go dan menyediakan contoh kod yang sepadan. Kaedah pelaksanaan ini ialah: penghala menggunakan pakej net/http, penghala menggunakan perpustakaan mux pihak ketiga, dan penghala menggunakan rangka kerja Gin. Tidak kira kaedah pelaksanaan yang anda pilih, anda boleh memilih kaedah pelaksanaan penghala yang paling sesuai dengan keperluan anda dan saiz projek anda.
Atas ialah kandungan terperinci Kaedah pelaksanaan penghalaan dalam bahasa Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!