我目前正在開發一個專案,該專案需要通過多個插件分發 HTTP 路由。目前使用的框架是光纖,如果需要,可以切換到另一個框架。該專案的結構如下:
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,應建立所有路線。
uj5u.com熱心網友回復:
使用 Fiber 和其他 Web 框架(如 Echo、Gin 等),您可以僅使用if陳述句有條件地添加路由。
Fiber 中的初始化如下所示(https://github.com/gofiber/fiber#️-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")
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/352541.html
上一篇:你如何讀取每N位?
