Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menjadikan Parameter Pertanyaan Pilihan dalam Permintaan GET Gorilla Mux?

Bagaimana untuk Menjadikan Parameter Pertanyaan Pilihan dalam Permintaan GET Gorilla Mux?

Barbara Streisand
Barbara Streisandasal
2024-10-31 19:18:02714semak imbas

How to Make Query Parameters Optional in Gorilla Mux GET Requests?

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:

  1. Alih Keluar Pertanyaan daripada Definisi Laluan: Alih keluar blok Pertanyaan daripada definisi laluan, seperti yang ditunjukkan di bawah:
r.HandleFunc("/user", UserByValueHandler).Methods("GET")
  1. Ekstrak Parameter Pertanyaan dalam Fungsi Pengendali: Dalam UserByValueHandler, dapatkan semula parameter pertanyaan menggunakan r.URL.Query():
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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn