我使用Krakend作为API网关,我的配置看起来像这样:
{
"plugin": {
"folder": "/etc/krakend/plugins/authenticator/",
"pattern":".so"
},
"port": 8080,
"extra_config": {
"github_com/devopsfaith/krakend/transport/http/server/handler": {
"name": "authenticator"
}
},
"endpoints": [
{
"output_encoding": "no-op",
"backend": [
{
"encoding": "no-op",
"host": [
"127.0.0.1:8080"
],
"url_pattern": "/api/v1/address/{id}",
"method": "GET"
}
],
"endpoint": "/api/v1/addresses/{id}",
"method": "GET"
}
],
"name": "gateway",
"timeout": "30s",
"version": 2
}
我想通过一些元数据每个端点和访问它在我预定义的插件。在这个例子中是authenticator
插件。
2条答案
按热度按时间4nkexdtk1#
你正在尝试使用一个http服务器插件,它应该在路由器层,又名之前,它击中krakend enpoints。这是全球性的定义。
由于您试图为每个端点提供不同的配置,因此可以考虑使用http-client plugins。
通过这种方式,您可以从每个端点的extra_config获取元数据。
ercv8c1e2#
你想要实现的是完全可能的,并且是KrakenD中所有组件的工作方式。您的插件可以使用您定义的命名空间访问KrakenD配置。例如,你可以这样设置你的元数据(我假设你在Go代码中有一个
pluginName = "slifer2015-authenticator"
):然后,当注册器启动时,您的元数据在
extra
参数中可用,在您选择的键内。