Heim >Backend-Entwicklung >Golang >Wie mache ich Abfrageparameter in Gorilla Mux GET-Anfragen optional?

Wie mache ich Abfrageparameter in Gorilla Mux GET-Anfragen optional?

Barbara Streisand
Barbara StreisandOriginal
2024-10-31 19:18:02710Durchsuche

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

Optionale Abfrageparameter in GET-Anfragen mit Gorilla Mux

Bei der Arbeit mit HTTP-GET-Anfragen in Gorilla Mux ist es oft wünschenswert, dies zu berücksichtigen optionale Abfrageparameter. Standardmäßig macht die Angabe eines Abfrageparameters in der Routendefinition (z. B. Queries("Benutzername", "{Benutzername}")) dessen Anwesenheit obligatorisch.

Das Problem

Wie in der Frage hervorgehoben, erfordert der bereitgestellte Code, dass in der Anfrage sowohl die Abfrageparameter „Benutzername“ als auch „E-Mail“ vorhanden sind. Voraussetzung ist jedoch die Flexibilität, einen oder beide Parameter bereitzustellen und optionale Abfragezeichenfolgen zu ermöglichen.

Die Lösung

Um dieses Problem zu beheben, sind die folgenden Schritte erforderlich empfohlen:

  1. Abfragen aus der Routendefinition entfernen:Entfernen Sie den Abfrageblock aus der Routendefinition, wie unten gezeigt:
r.HandleFunc("/user", UserByValueHandler).Methods("GET")
  1. Abfrageparameter in Handler-Funktion extrahieren: Rufen Sie im UserByValueHandler die Abfrageparameter mit r.URL.Query() ab:
func UserByValueHandler(w http.ResponseWriter, r *http.Request) {
       v := r.URL.Query()

       username := v.Get("username")
       email := v.Get("email")
       .....
}

Dieser Ansatz ermöglicht optionale Abfrageparameter . Wenn ein bestimmter Parameter in der Anfrage nicht angegeben wird, gibt v.Get() einen leeren String zurück, der im Code entsprechend behandelt werden kann.

Das obige ist der detaillierte Inhalt vonWie mache ich Abfrageparameter in Gorilla Mux GET-Anfragen optional?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn