Maison  >  Article  >  développement back-end  >  Comment rendre les paramètres de requête facultatifs dans les requêtes Gorilla Mux GET ?

Comment rendre les paramètres de requête facultatifs dans les requêtes Gorilla Mux GET ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-31 19:18:02625parcourir

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

Paramètres de requête facultatifs dans la requête GET utilisant Gorilla Mux

Lorsque vous travaillez avec des requêtes HTTP GET dans Gorilla Mux, il est souvent souhaitable d'autoriser paramètres de requête facultatifs. Par défaut, la spécification d'un paramètre de requête dans la définition de la route (par exemple Queries("username", "{username}")) rend sa présence obligatoire.

Le problème

Comme souligné dans la question, le code fourni nécessite que les paramètres de requête « nom d'utilisateur » et « e-mail » soient présents dans la requête. Cependant, l'exigence est d'avoir la flexibilité de fournir l'un ou les deux paramètres, permettant des chaînes de requête facultatives.

La solution

Pour résoudre ce problème, les étapes suivantes sont recommandé :

  1. Supprimer les requêtes de la définition de l'itinéraire : Supprimez le bloc Requêtes de la définition de l'itinéraire, comme indiqué ci-dessous :
r.HandleFunc("/user", UserByValueHandler).Methods("GET")
  1. Extraire les paramètres de requête dans la fonction de gestionnaire : Dans UserByValueHandler, récupérez les paramètres de requête à l'aide de r.URL.Query() :
func UserByValueHandler(w http.ResponseWriter, r *http.Request) {
       v := r.URL.Query()

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

Cette approche permet des paramètres de requête facultatifs . Si un paramètre spécifique n'est pas fourni dans la requête, v.Get() renverra une chaîne vide, qui pourra être gérée en conséquence dans le code.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn