code: func (s *Server) GetInfoMux() *bone.Mux {
  	mux := bone.New()
  
  	mux.Get("/info", http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
  		ci := s.getInfo()
  		js, err := json.Marshal(ci)
  		if err != nil {
  			http.Error(w, err.Error(), http.StatusInternalServerError)
  			return
  		}
  		w.Header().Set("Content-Type", "application/json")
  		w.Write(js)
  	}))
  
  	mux.Get("/containers/:id", http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) {
  		containerID := bone.GetValue(req, "id")
  		ci, err := s.getContainerInfo(containerID, s.GetContainer, s.getInfraContainer, s.getSandbox)
  		if err != nil {
  			switch err {
  			case errCtrNotFound:
  				http.Error(w, fmt.Sprintf("can't find the container with id %s", containerID), http.StatusNotFound)
  			case errCtrStateNil:
  				http.Error(w, fmt.Sprintf("can't find container state for container with id %s", containerID), http.StatusInternalServerError)
  			case errSandboxNotFound:
  				http.Error(w, fmt.Sprintf("can't find the sandbox for container id %s", containerID), http.StatusNotFound)
  			default:
  				http.Error(w, err.Error(), http.StatusInternalServerError)
  			}
  			return
  		}
  		js, err := json.Marshal(ci)
  		if err != nil {
  			http.Error(w, err.Error(), http.StatusInternalServerError)
  			return
  		}
  		w.Header().Set("Content-Type", "application/json")
  		w.Write(js)
  	}))
  
  	return mux
  }
docs: // GetInfoMux returns the mux used to serve info requests