Go で URL を扱う時は通常、net/url を使います。その際、例えばベースとなる URL にパスを足そうと思うと意外としんどかったりしました。 package main import ( "fmt" "log" "net/url" "path" ) func main() { endpoint := "https://example.com" u, err := url.Parse(endpoint) if err != nil { log.Fatal(err) } u.Path = path.Join(u.Path, "foo", "bar", "baz") endpoint = u.String() fmt.Println(endpoint) } 一部の方は「ハァッ?文字列で足せばいいじゃん」と思われるかもしれませんが、URL のパスを扱うという行為は実はとても難しい事なのです