packagerocketsimport (..)typeNewRouterParamsstruct { RW *chttp.ReaderWriter Logger clogger.Logger}funcNewRouter(p NewRouterParams) *Router {return&Router{ rw: p.RW, logger: p.Logger, }}// Router struct implements the `chttp.Router` interface. It holds all the// dependencies needed for its handlers.typeRouterstruct { rw *chttp.ReaderWriter logger clogger.Logger}// Routes returns a list of chttp.Route managed by this Router.func (ro *Router) Routes() []chttp.Route {return []chttp.Route{ { Path: "/rockets/{id}/launch", Methods: []string{http.MethodPost}, Handler: ro.HandleRocketLaunch, }, }}// HandleRocketLaunch is invoked when a POST request is made to the // "/rockets/{id}/launch" endpointfunc (ro *Router) HandleRocketLaunch(w http.ResponseWriter, r *http.Request) {// Handle request here..}