我用 GO 語言為 KrakenD Gateway 編寫了一個簡單的服務器插件。它在路由開始之前注入代碼。我正在嘗試從我的配置中讀取配置設置,krakend.json以便在啟動時將設置傳遞給我的插件。下面我以設置mysetting為例(請看注釋之間的代碼HERE THE READ OF MY SETTING STARTS/ENDS)。如何使用mysetting插件內部配置的值?這是我在啟動時krakend.json用作-c參數的配置文件:{ "version": 2, "timeout": "3000ms", "cache_ttl": "300s", "output_encoding": "json", "name": "Gateway", "plugin": { "pattern": ".so", "folder": "./plugins/" }, "extra_config": { "github_com/devopsfaith/krakend/transport/http/server/handler": { "name": "testPlugin", "mysetting": "Hello" } }, "endpoints": [ ... ], "port": 9010,}這是 registerHandlers 函數的代碼:func (r registerer) registerHandlers(ctx context.Context, extra map[string]interface{}, _ http.Handler) (http.Handler, error) { // check the passed configuration and initialize the plugin name, ok := extra["name"].(string) if !ok { return nil, errors.New("wrong config") } if name != string(r) { return nil, fmt.Errorf("unknown register %s", name) } //************ HERE THE READ OF MY SETTING STARTS ************ setting, ok := extra["mysetting"].(string) if !ok { return nil, errors.New("mysetting missing in config") } fmt.Printf("PLUGIN: My custom setting: %s\n", setting) //************ HERE THE READ OF MY SETTING ENDS ************ // return the actual handler wrapping or your custom logic so it can be used as a replacement for the default http handler return http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { fmt.Fprintf(w, "%s, %q", setting, html.EscapeString(req.URL.Path)) }), nil}
- 1 回答
- 0 關注
- 110 瀏覽
添加回答
舉報
0/150
提交
取消