我目前正在开发一个项目,该项目需要将 HTTP-Routes 分布在多个插件上。目前使用的是光纤框架,如果需要,可以切换到另一个框架。该项目的结构如下:+ base|+-- main| | base-routes.go|+--plugins| || + Plugin1| | plugin1-routes.go| | further files omitted| | | + Plugin2| | plugin2-routes.go| |是否有机会根据已安装的插件动态添加路由?go run base.go --plugins=plugin1在调用所有路由之后,只将这些路由添加到主路由中,这将是完美的。调用go run base.go --plugins=plugin1,plugin2时应建立所有路由。
1 回答
富国沪深
TA贡献1790条经验 获得超9个赞
使用 Fiber 和 Echo、Gin 等其他 Web 框架,您可以仅使用if语句有条件地添加路由。
Fiber 中的初始化如下所示(https://github.com/gofiber/fiber#%EF%B8%8F-quickstart):
app := fiber.New()
app.Get("/", func(c *fiber.Ctx) error {
return c.SendString("Hello, World 👋!")
})
使用条件逻辑:
package main
import (
"flag"
"github.com/gofiber/fiber/v2"
)
func main() {
cliflags := flag.String("plugins", "", "")
flag.Parse()
app := fiber.New()
// verify not nil or something else according to your flag pattern
if cliflags != nil {
app.Get("/", func(c *fiber.Ctx) error {
return c.SendString("Hello, World 👋!")
})
}
app.Listen(":3000")
}
- 1 回答
- 0 关注
- 97 浏览
添加回答
举报
0/150
提交
取消