登录
首页 >  Golang >  Go问答

有没有办法在 krakend 端点配置中发送元数据?

来源:stackoverflow

时间:2024-02-28 22:30:26 128浏览 收藏

哈喽!今天心血来潮给大家带来了《有没有办法在 krakend 端点配置中发送元数据?》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到,若是你正在学习Golang,千万别错过这篇文章~希望能帮助到你!

问题内容

我使用 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 插件。


正确答案


您正在尝试使用http服务器插件,该插件应该位于路由器层中,也就是在它到达krakend enpoints之前。所以它是全局定义的。

由于您尝试对每个端点进行不同的配置,因此请考虑使用 http-client plugins

通过这种方式,您可以从每个端点的 extra_config 获取元数据。

endpoints: [
{
  "output_encoding": "no-op",
  "backend": [
    {
      "encoding": "no-op",
      "host": [
        "127.0.0.1:8080"
      ],
      "url_pattern": "/api/v1/address/{id}",
      "method": "GET",
      "extra_config": {
        "plugin/http-client": {
          "name": "krakend-client-example",
          "krakend-client-example": {
            "metadata_example_1": "example"
          }
        }
      }
    }
  ],
  "endpoint": "/api/v1/addresses/{id}",
  "method": "GET"
},
]

以上就是《有没有办法在 krakend 端点配置中发送元数据?》的详细内容,更多关于的资料请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>