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

Comment puis-je rendre les paramètres de requête facultatifs dans une requête Gorilla Mux GET ?

DDD
Libérer: 2024-11-04 15:40:02
original
465 Les gens l'ont consulté

How Can I Make Query Parameters Optional in a Gorilla Mux GET Request?

Paramètres de requête dans la requête GET : paramètres facultatifs à l'aide de Gorilla Mux

Dans Gorilla Mux, les paramètres de requête sont utilisés pour filtrer et récupérer les données d'un Requête HTTP. Par défaut, tous les paramètres de requête spécifiés doivent être présents dans la requête. Cependant, il peut y avoir des cas où vous souhaitez rendre certains paramètres facultatifs.

Par exemple, considérons un scénario dans lequel vous souhaitez qu'une requête GET contienne soit un paramètre « nom d'utilisateur », soit « e-mail », mais pas nécessairement les deux. . Auparavant, votre code pouvait ressembler à ceci :

<code class="go">r.HandleFunc("/user", userByValueHandler).
    Queries(
        "username", "{username}",
        "email", "{email}",
    ).
    Methods("GET")</code>
Copier après la connexion

Ce code nécessite que "nom d'utilisateur" et "e-mail" soient présents dans la demande. Pour rendre ces paramètres facultatifs, nous pouvons modifier notre code comme suit :

<code class="go">r.HandleFunc("/user", UserByValueHandler).Methods("GET")</code>
Copier après la connexion

Désormais, le gestionnaire de route "/user" est invoqué quelle que soit la présence de paramètres de requête. Pour récupérer les paramètres facultatifs, nous pouvons utiliser la méthode URL.Query() dans la fonction gestionnaire :

<code class="go">func UserByValueHandler(w http.ResponseWriter, r *http.Request) {
       v := r.URL.Query()

       username := v.Get("username")
       email := v.Get("email")
       .....
}</code>
Copier après la connexion

La fonction v.Get() renverra la valeur associée au nom du paramètre spécifié, ou un chaîne vide si le paramètre n'est pas présent. Cela nous permet de gérer les deux cas où un ou deux paramètres sont fournis dans la requête.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal