github.com/moby/docker@v26.1.3+incompatible/api/server/router/image/image.go (about)

     1  package image // import "github.com/docker/docker/api/server/router/image"
     2  
     3  import (
     4  	"github.com/docker/docker/api/server/router"
     5  	"github.com/docker/docker/image"
     6  	"github.com/docker/docker/layer"
     7  	"github.com/docker/docker/reference"
     8  )
     9  
    10  // imageRouter is a router to talk with the image controller
    11  type imageRouter struct {
    12  	backend          Backend
    13  	searcher         Searcher
    14  	referenceBackend reference.Store
    15  	imageStore       image.Store
    16  	layerStore       layer.Store
    17  	routes           []router.Route
    18  }
    19  
    20  // NewRouter initializes a new image router
    21  func NewRouter(backend Backend, searcher Searcher, referenceBackend reference.Store, imageStore image.Store, layerStore layer.Store) router.Router {
    22  	ir := &imageRouter{
    23  		backend:          backend,
    24  		searcher:         searcher,
    25  		referenceBackend: referenceBackend,
    26  		imageStore:       imageStore,
    27  		layerStore:       layerStore,
    28  	}
    29  	ir.initRoutes()
    30  	return ir
    31  }
    32  
    33  // Routes returns the available routes to the image controller
    34  func (ir *imageRouter) Routes() []router.Route {
    35  	return ir.routes
    36  }
    37  
    38  // initRoutes initializes the routes in the image router
    39  func (ir *imageRouter) initRoutes() {
    40  	ir.routes = []router.Route{
    41  		// GET
    42  		router.NewGetRoute("/images/json", ir.getImagesJSON),
    43  		router.NewGetRoute("/images/search", ir.getImagesSearch),
    44  		router.NewGetRoute("/images/get", ir.getImagesGet),
    45  		router.NewGetRoute("/images/{name:.*}/get", ir.getImagesGet),
    46  		router.NewGetRoute("/images/{name:.*}/history", ir.getImagesHistory),
    47  		router.NewGetRoute("/images/{name:.*}/json", ir.getImagesByName),
    48  		// POST
    49  		router.NewPostRoute("/images/load", ir.postImagesLoad),
    50  		router.NewPostRoute("/images/create", ir.postImagesCreate),
    51  		router.NewPostRoute("/images/{name:.*}/push", ir.postImagesPush),
    52  		router.NewPostRoute("/images/{name:.*}/tag", ir.postImagesTag),
    53  		router.NewPostRoute("/images/prune", ir.postImagesPrune),
    54  		// DELETE
    55  		router.NewDeleteRoute("/images/{name:.*}", ir.deleteImages),
    56  	}
    57  }