mirror of
				https://github.com/distribution/distribution.git
				synced 2025-10-31 17:35:53 +00:00 
			
		
		
		
	This change adds a basic catalog endpoint to the API, which returns a list, or partial list, of all of the repositories contained in the registry. Calls to this endpoint are somewhat expensive, as every call requires walking a large part of the registry. Instead, to maintain a list of repositories, you would first call the catalog endpoint to get an initial list, and then use the events API to maintain any future repositories. Signed-off-by: Patrick Devine <patrick.devine@docker.com>
		
			
				
	
	
		
			50 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| 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
 | |
| }
 |