Uniform trailing slashes, client.URL()
This commit is contained in:
parent
980367e527
commit
02f46aab11
3 changed files with 16 additions and 8 deletions
|
@ -10,6 +10,7 @@ import (
|
|||
|
||||
"github.com/thermokarst/bactdb/datastore"
|
||||
"github.com/thermokarst/bactdb/models"
|
||||
"github.com/thermokarst/bactdb/router"
|
||||
)
|
||||
|
||||
func init() {
|
||||
|
@ -29,7 +30,8 @@ var (
|
|||
func setup() {
|
||||
store = datastore.NewMockDatastore()
|
||||
SetupCerts("../keys/")
|
||||
resp, _ := httpClient.PostForm(apiClient.BaseURL.String()+"authenticate/",
|
||||
u, _ := apiClient.URL(router.GetToken, nil, nil)
|
||||
resp, _ := httpClient.PostForm(u.String(),
|
||||
url.Values{"username": {"test_user"}, "password": {"password"}})
|
||||
defer resp.Body.Close()
|
||||
}
|
||||
|
|
|
@ -127,6 +127,12 @@ func (c *Client) url(apiRouteName string, routeVars map[string]string, opt inter
|
|||
return url, nil
|
||||
}
|
||||
|
||||
func (c *Client) URL(apiRouteName string, routeVars map[string]string, opt interface{}) (*url.URL, error) {
|
||||
u, err := c.url(apiRouteName, routeVars, opt)
|
||||
absURL := c.BaseURL.ResolveReference(u)
|
||||
return absURL, err
|
||||
}
|
||||
|
||||
// NewRequest creates an API request. A relative URL can be provided in urlStr,
|
||||
// in which case it is resolved relative to the BaseURL of the Client. Relative
|
||||
// URLs should always be specified without a preceding slash. If specified, the
|
||||
|
|
|
@ -9,7 +9,7 @@ func API() *mux.Router {
|
|||
m.Path("/users").Methods("GET").Name(Users)
|
||||
m.Path("/users").Methods("POST").Name(CreateUser)
|
||||
m.Path("/users/{Id:.+}").Methods("GET").Name(User)
|
||||
m.Path("/authenticate/").Methods("POST").Name(GetToken)
|
||||
m.Path("/authenticate").Methods("POST").Name(GetToken)
|
||||
|
||||
// Genera
|
||||
m.Path("/genera").Methods("GET").Name(Genera)
|
||||
|
@ -47,22 +47,22 @@ func API() *mux.Router {
|
|||
m.Path("/characteristics/{Id:.+}").Methods("DELETE").Name(DeleteCharacteristic)
|
||||
|
||||
// TextMeasurementTypes
|
||||
m.Path("/text_measurement_types/").Methods("GET").Name(TextMeasurementTypes)
|
||||
m.Path("/text_measurement_types/").Methods("POST").Name(CreateTextMeasurementType)
|
||||
m.Path("/text_measurement_types").Methods("GET").Name(TextMeasurementTypes)
|
||||
m.Path("/text_measurement_types").Methods("POST").Name(CreateTextMeasurementType)
|
||||
m.Path("/text_measurement_types/{Id:.+}").Methods("GET").Name(TextMeasurementType)
|
||||
m.Path("/text_measurement_types/{Id:.+}").Methods("PUT").Name(UpdateTextMeasurementType)
|
||||
m.Path("/text_measurement_types/{Id:.+}").Methods("DELETE").Name(DeleteTextMeasurementType)
|
||||
|
||||
// UnitTypes
|
||||
m.Path("/unit_types/").Methods("GET").Name(UnitTypes)
|
||||
m.Path("/unit_types/").Methods("POST").Name(CreateUnitType)
|
||||
m.Path("/unit_types").Methods("GET").Name(UnitTypes)
|
||||
m.Path("/unit_types").Methods("POST").Name(CreateUnitType)
|
||||
m.Path("/unit_types/{Id:.+}").Methods("GET").Name(UnitType)
|
||||
m.Path("/unit_types/{Id:.+}").Methods("PUT").Name(UpdateUnitType)
|
||||
m.Path("/unit_types/{Id:.+}").Methods("DELETE").Name(DeleteUnitType)
|
||||
|
||||
// Measurements
|
||||
m.Path("/measurements/").Methods("GET").Name(Measurements)
|
||||
m.Path("/measurements/").Methods("POST").Name(CreateMeasurement)
|
||||
m.Path("/measurements").Methods("GET").Name(Measurements)
|
||||
m.Path("/measurements").Methods("POST").Name(CreateMeasurement)
|
||||
m.Path("/measurements/{Id:.+}").Methods("GET").Name(Measurement)
|
||||
m.Path("/measurements/{Id:.+}").Methods("PUT").Name(UpdateMeasurement)
|
||||
m.Path("/measurements/{Id:.+}").Methods("DELETE").Name(DeleteMeasurement)
|
||||
|
|
Reference in a new issue