1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- package v2
- import "github.com/gorilla/mux"
- // The following are definitions of the name under which all V2 routes are
- // registered. These symbols can be used to look up a route based on the name.
- const (
- RouteNameBase = "base"
- RouteNameManifest = "manifest"
- RouteNameTags = "tags"
- RouteNameBlob = "blob"
- RouteNameBlobUpload = "blob-upload"
- RouteNameBlobUploadChunk = "blob-upload-chunk"
- RouteNameCatalog = "catalog"
- )
- var allEndpoints = []string{
- RouteNameManifest,
- RouteNameCatalog,
- RouteNameTags,
- RouteNameBlob,
- RouteNameBlobUpload,
- RouteNameBlobUploadChunk,
- }
- // Router builds a gorilla router with named routes for the various API
- // methods. This can be used directly by both server implementations and
- // clients.
- func Router() *mux.Router {
- return RouterWithPrefix("")
- }
- // RouterWithPrefix builds a gorilla router with a configured prefix
- // on all routes.
- func RouterWithPrefix(prefix string) *mux.Router {
- rootRouter := mux.NewRouter()
- router := rootRouter
- if prefix != "" {
- router = router.PathPrefix(prefix).Subrouter()
- }
- router.StrictSlash(true)
- for _, descriptor := range routeDescriptors {
- router.Path(descriptor.Path).Name(descriptor.Name)
- }
- return rootRouter
- }
|