Abfrageparameter in GET-Anfragen: Optionale Parameter mit Gorilla Mux
In Gorilla Mux werden Abfrageparameter zum Filtern und Abrufen von Daten aus einer verwendet HTTP-Anfrage. Standardmäßig müssen alle angegebenen Abfrageparameter in der Anfrage vorhanden sein. Es kann jedoch Fälle geben, in denen Sie einige Parameter optional machen möchten.
Stellen Sie sich beispielsweise ein Szenario vor, in dem eine GET-Anfrage entweder einen „Benutzernamen“- oder einen „E-Mail“-Parameter enthalten soll, aber nicht unbedingt beide . Zuvor sah Ihr Code möglicherweise etwa so aus:
<code class="go">r.HandleFunc("/user", userByValueHandler). Queries( "username", "{username}", "email", "{email}", ). Methods("GET")</code>
Für diesen Code müssen sowohl „Benutzername“ als auch „E-Mail“ in der Anfrage vorhanden sein. Um diese Parameter optional zu machen, können wir unseren Code wie folgt ändern:
<code class="go">r.HandleFunc("/user", UserByValueHandler).Methods("GET")</code>
Jetzt wird der Routenhandler „/user“ unabhängig vom Vorhandensein von Abfrageparametern aufgerufen. Um die optionalen Parameter abzurufen, können wir die Methode URL.Query() in der Handler-Funktion verwenden:
<code class="go">func UserByValueHandler(w http.ResponseWriter, r *http.Request) { v := r.URL.Query() username := v.Get("username") email := v.Get("email") ..... }</code>
Die Funktion v.Get() gibt den mit dem angegebenen Parameternamen verknüpften Wert oder einen zurück leere Zeichenfolge, wenn der Parameter nicht vorhanden ist. Dadurch können wir beide Fälle bearbeiten, in denen ein oder zwei Parameter in der Anfrage bereitgestellt werden.
Das obige ist der detaillierte Inhalt vonWie kann ich Abfrageparameter in einer Gorilla Mux GET-Anfrage optional machen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!