Parameter Pertanyaan dalam Permintaan GET: Parameter Pilihan Menggunakan Gorilla Mux
Dalam Gorilla Mux, parameter pertanyaan digunakan untuk menapis dan mendapatkan data daripada Permintaan HTTP. Secara lalai, semua parameter pertanyaan yang ditentukan perlu hadir dalam permintaan. Walau bagaimanapun, mungkin terdapat kes di mana anda ingin menjadikan beberapa parameter pilihan.
Sebagai contoh, pertimbangkan senario di mana anda mahu permintaan GET mengandungi sama ada parameter "nama pengguna" atau "e-mel", tetapi tidak semestinya kedua-duanya . Sebelum ini, kod anda mungkin kelihatan seperti ini:
<code class="go">r.HandleFunc("/user", userByValueHandler). Queries( "username", "{username}", "email", "{email}", ). Methods("GET")</code>
Kod ini memerlukan "nama pengguna" dan "e-mel" untuk hadir dalam permintaan. Untuk menjadikan parameter ini pilihan, kami boleh mengubah suai kod kami seperti berikut:
<code class="go">r.HandleFunc("/user", UserByValueHandler).Methods("GET")</code>
Kini, pengendali laluan "/pengguna" digunakan tanpa mengira kehadiran parameter pertanyaan. Untuk mendapatkan semula parameter pilihan, kita boleh menggunakan kaedah URL.Query() dalam fungsi pengendali:
<code class="go">func UserByValueHandler(w http.ResponseWriter, r *http.Request) { v := r.URL.Query() username := v.Get("username") email := v.Get("email") ..... }</code>
Fungsi v.Get() akan mengembalikan nilai yang dikaitkan dengan nama parameter yang ditentukan, atau rentetan kosong jika parameter tidak ada. Ini membolehkan kami mengendalikan kedua-dua kes apabila satu atau dua parameter disediakan dalam permintaan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjadikan Parameter Pertanyaan Pilihan dalam Permintaan Gorilla Mux GET?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!