1
我要動態地創建使用自定義plugins/middleware的HTTP路由器,目前,我使用的是config.yml
例如:如何動態地添加進口
plugins:
- waf
- jwt
- cors
解析yml
文件後,我創建這樣的路線:
route := violetear.New()
chain := middleware.New()
for _, plugin := range Plugins {
chain := chain.Append(plugin)
}
router.Handle("/test", chain.Then(myHandler))
log.Fatal(http.ListenAndServe(":8080", router))
這個工作,我會包括在進口部所有插件,喜歡的東西:
import (
"net/http"
"github.com/nbari/violetear"
"github.com/nbari/violetear/midleware"
// How to deal with this
"github.com/example/waf"
"github.com/example/jwt"
"github.com/example/cors"
)
我需要改變當前配置的格式是更有用的東西/通用大概是這樣的:
plugins:
- [github.com/foo, foo]
- [github.com/bar, bar]
但除此之外,這可能是爲「動態」創造進口或產生最好的方法後面的代碼可以編譯?
任何想法?
嗨,我一直在思考如何使用'去generate'並使用'Makefile'產生以後也許可以建立工作任何想法? – nbari
@nbari是的,如果你對預處理沒問題,去生成可能是有用的,但它不會像你在問題的第一句中所要求的那樣是動態的。 – icza