Documentation
¶
Index ¶
Constants ¶
const (
GetAppTasksRequest = "AppTasks"
GetAppsRequest = "Apps"
NewAppTaskRequest = "NewAppTask"
)
const (
AppsResource = "apps"
TasksResource = "tasks"
)
Variables ¶
var APIRoutes = []Route{
{Path: "/", Method: http.MethodGet, Name: GetAppsRequest, Resource: AppsResource},
{Path: "/:guid/tasks", Method: http.MethodGet, Name: GetAppTasksRequest, Resource: AppsResource},
{Path: "/:guid/tasks", Method: http.MethodPost, Name: NewAppTaskRequest, Resource: AppsResource},
}
APIRoutes is a list of routes used by the router to construct request URLs.
Functions ¶
This section is empty.
Types ¶
type Params ¶
type Params map[string]string
Params map path keys to values. For example, if your route has the path pattern:
/person/:person_id/pets/:pet_type
Then a correct Params map would lool like:
router.Params{
"person_id": "123",
"pet_type": "cats",
}
type Route ¶
type Route struct {
// Name is a key specifying which HTTP route the router should associate with
// the endpoint at runtime.
Name string
// Method is any valid HTTP method
Method string
// Path contains a path pattern
Path string
// Resource is a key specifying which resource root the router should
// associate with the endpoint at runtime.
Resource string
}
Route defines the property of a Cloud Controller V3 endpoint.
Method can be one of the following:
GET HEAD POST PUT PATCH DELETE CONNECT OPTIONS TRACE
Path conforms to Pat-style pattern matching. The following docs are taken from http://godoc.org/github.com/bmizerany/pat#PatternServeMux
Path Patterns may contain literals or captures. Capture names start with a colon and consist of letters A-Z, a-z, _, and 0-9. The rest of the pattern matches literally. The portion of the URL matching each name ends with an occurrence of the character in the pattern immediately following the name, or a /, whichever comes first. It is possible for a name to match the empty string.
Example pattern with one capture:
/hello/:name
Will match:
/hello/blake /hello/keith
Will not match:
/hello/blake/ /hello/blake/foo /foo /foo/bar
Example 2:
/hello/:name/
Will match:
/hello/blake/ /hello/keith/foo /hello/blake /hello/keith
Will not match:
/foo /foo/bar
func (Route) CreatePath ¶
func (r Route) CreatePath(params Params) (string, error)
CreatePath combines the route's path pattern with a Params map to produce a valid path.
type Router ¶
type Router struct {
// contains filtered or unexported fields
}
Router combines route and resource information in order to generate HTTP requests.
func NewRouter ¶
func NewRouter(routes []Route, resources map[string]string) *Router
NewRouter returns a pointer to a new Router.
func (Router) CreateRequest ¶
func (router Router) CreateRequest(name string, params Params, body io.Reader) (*http.Request, error)
CreateRequest returns a request key'd off of the name given. The params are merged into the URL and body is set as the request body.