如何从其他包导入子路由

Val*_*rad 1 rest middleware routes go go-echo

而不是在 main() 下写每条路线,比如

func main() {
    e := echo.New()
    e.GET("/api", sayHello)
    e.GET("/api/music", getMusic)
    e.GET("/api/user/:id", getDetail)
    e.POST("/api/user", addUser)
    // ...
}
Run Code Online (Sandbox Code Playgroud)

如何从名为 的文件中导入所有这些子路由api.go,并在主函数中使用这些子路由?相似

import "./API"
func main() {
    e := echo.New()
    e.UseSubroute(API.Routes) // <-- similar to this
    // ...
}
Run Code Online (Sandbox Code Playgroud)

小智 5

您可以做的是使用echo.Group并将其传递给api包,并在那里初始化路由处理程序。

package api

import (
    "github.com/labstack/echo"
)

func UseSubroute(group *echo.Group)  {
    group.GET("/", sayHello)
    group.GET("/music", getMusic)
    group.GET("/user/:id", getDetail)
    group.POST("/user", addUser)
}
Run Code Online (Sandbox Code Playgroud)

主要是你可以导入你的api包。

package main

import (
    "github.com/labstack/echo"
    "your-repo/path-to/api" // your api package
)

func main() {
    e := echo.New()
    apiGroup := e.Group("/api")
    api.UseSubroute(apiGroup)
    // ...
}
Run Code Online (Sandbox Code Playgroud)