Dan*_*son -1 go

我有一个方法包:

func Route(router *mux.Router){
    subrouter := router.PathPrefix(_API).Subrouter()
    subrouter.Path(_FOO).HandlerFunc(foo)
    subrouter.Path(_BAR).HandlerFunc(bar)
}

我希望通过在我的包中使用匹配的接口来删除mux的外部依赖,这简单地包含了上面使用的所有功能,如下所示:

type Router interface{
    Path(string) Path
    PathPrefix(string) Path
}

type Path interface{
    HandlerFunc(http.HandlerFunc)
    Subrouter() Router
}

func Route(router Router){
    subrouter := router.PathPrefix(_API).Subrouter()
    subrouter.Path(_FOO).HandlerFunc(foo)
    subrouter.Path(_BAR).HandlerFunc(bar)
}

但是当我构建这个时,我得到错误:

*mux.Router没有实现api.Router(Path方法的类型错误)有Path(string)*mux.Route想要Path(string)api.Path

*mux.Route