web-dev-qa-db-fra.com

Générateur URL/Générateur de requêtes dans Go

Je suis intéressé par prendre dynamiquement les arguments de l'utilisateur en tant qu'entrée via un navigateur ou une CLI pour transmettre ces paramètres à l'appel d'API REST et ainsi construire l'URL de manière dynamique en utilisant Go, ce qui va finalement me chercher des données JSON. . Je voulais connaître certaines techniques de Go qui pourraient m'aider à le faire. Une façon idéale que j’imaginais était d’utiliser une carte et de la renseigner avec des clés d’argument et des valeurs correspondantes, puis de la parcourir et de l’ajouter à la chaîne d’URL. comment faire ça dans Go. Quelqu'un peut-il m'aider avec un extrait de code dans Go?

Exemple -

http: //: port? api = fetchJsonData & arg1 = val1 & arg2 = val2 & arg3 = val3 ..... & argn = valn

22
psbits

Il y a déjà url.URL qui gère ce genre de choses pour vous.

Pour les gestionnaires http (demandes entrantes), cela fait partie de http.Request (y accéder avec req.URL.Query ()).

Un très bon exemple du fonctionnaire docs :

u, err := url.Parse("http://bing.com/search?q=dotnet")
if err != nil {
    log.Fatal(err)
}
u.Scheme = "https"
u.Host = "google.com"
q := u.Query()
q.Set("q", "golang")
u.RawQuery = q.Encode()
fmt.Println(u)
48
OneOfOne

https://github.com/golang/go/issues/17340#issuecomment-251537687

https://play.golang.org/p/XUctl_odTSb

package main

import (
    "fmt"
    "net/url"
)

func someURL() string {
    url := url.URL{
        Scheme: "https",
        Host:   "example.com",
    }
    return url.String()
}

func main() {
    fmt.Println(someURL())
}

résultats:

https://example.com

0
030