Interesuje mnie dynamiczne przyjmowanie argumentów od użytkownika jako danych wejściowych za pośrednictwem przeglądarki lub interfejsu CLI, które przekazują te parametry do wywołania REST API, a co za tym idzie, dynamiczne budowanie adresu URL za pomocą funkcji Go, która będzie używana ostatecznie przynieś mi trochę danych JSON. Chciałem poznać niektóre techniki w Go, które mogą mi w tym pomóc. Jednym z idealnych pomysłów było użycie mapy i wypełnienie jej kluczami argumentów i odpowiadającymi im wartościami oraz iteracja i dołączenie do ciągu URL. Ale jeśli chodzi o dynamiczne przyjmowanie argumentów i zapełnianie mapy, nie jestem pewien jak to zrobić w Go. Czy ktoś może mi pomóc z fragmentem kodu w Go?Konstruktor URL/Konstruktor zapytań w Go
Przykład -
http: //: port api = fetchJsonData & arg1 = val1 & arg2 = wart2 & arg3 = val3 ..... & argn = valn
Jest to dobry sposób. Dzięki. Czy możesz też zaproponować sposób, w jaki mogę przechowywać parę klucz-wartość na mapie, a następnie użyć tej mapy do utworzenia adresu URL? – psbits
@psbits 'url.Values' jest mapą (możesz pobrać kopię z u.Query()), możesz jej użyć do skonstruowania adresu URL, a następnie użyj' u: = url.Parse ("http: // base. com/"); u.RawQuery = yourValues.Encode(); URL: = u.String() ' – OneOfOne
Cóż, dziękuję. Zrobiłem coś takiego - {urlMap: = zrobić (mapa [ciąg] string) \t urlMap [ "arg1"] = "val1" \t urlMap [ "arg2"] = "wart2" \t url.Scheme = " http” \t url.Host = Ip + ":" + DefaultPort \t P: = url.Query() \t k, _: = zakres urlMap { \t \t q.Set (k urlMap [k]), \t} \t url.RawQuery = q.Encode() \t fmt.Println (URL)} – psbits