Parameter Pertanyaan Pilihan dalam Permintaan GET Menggunakan Gorilla Mux
Apabila bekerja dengan permintaan HTTP GET dalam Gorilla Mux, selalunya wajar untuk membenarkan parameter pertanyaan pilihan. Secara lalai, menentukan parameter pertanyaan dalam definisi laluan (cth. Pertanyaan("nama pengguna", "{nama pengguna}")) menjadikan kehadirannya wajib.
Masalahnya
Seperti yang diserlahkan dalam soalan, kod yang disediakan memerlukan kedua-dua parameter pertanyaan "nama pengguna" dan "e-mel" hadir dalam permintaan. Walau bagaimanapun, keperluan adalah untuk mempunyai fleksibiliti untuk menyediakan salah satu atau kedua-dua parameter, membenarkan rentetan pertanyaan pilihan.
Penyelesaian
Untuk menangani perkara ini, langkah berikut adalah disyorkan:
r.HandleFunc("/user", UserByValueHandler).Methods("GET")
func UserByValueHandler(w http.ResponseWriter, r *http.Request) { v := r.URL.Query() username := v.Get("username") email := v.Get("email") ..... }
Pendekatan ini membenarkan parameter pertanyaan pilihan . Jika parameter tertentu tidak diberikan dalam permintaan, v.Get() akan mengembalikan rentetan kosong, yang boleh dikendalikan dengan sewajarnya dalam kod.
Atas ialah kandungan terperinci Bagaimana untuk Menjadikan Parameter Pertanyaan Pilihan dalam Permintaan GET Gorilla Mux?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!