1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
package mux_test
import (
"fmt"
"github.com/gorilla/mux"
)
// This example demonstrates building a dynamic URL using
// required vars and values retrieve from another source
func ExampleRoute_GetVarNames() {
r := mux.NewRouter()
route := r.Host("{domain}").
Path("/{group}/{item_id}").
Queries("some_data1", "{some_data1}").
Queries("some_data2_and_3", "{some_data2}.{some_data3}")
dataSource := func(key string) string {
return "my_value_for_" + key
}
varNames, _ := route.GetVarNames()
pairs := make([]string, 0, len(varNames)*2)
for _, varName := range varNames {
pairs = append(pairs, varName, dataSource(varName))
}
url, err := route.URL(pairs...)
if err != nil {
panic(err)
}
fmt.Println(url.String())
}
|