首页 > 解决方案 > KrakenD 包罗万象的路径

问题描述

我在 KrakenD 配置中有两条路径:/city/toronto 和 /city/vancouver。我想创建另一条路径 /city/other 来捕获将提供的所有其他城市。

我知道乍一看有人会说:将城市设为路径参数,或者甚至会说将城市设为查询参数。我已经考虑过这些选项,但它们是不可行的。

Krakend 中有没有办法定义一个包罗万象或后备端点?我虽然通配符可以让我这样做,但我不知道这是如何工作的。

标签: microserviceskrakend

解决方案


在早期版本的 KrakenD 中这是不可能的,但从 1.4 开始,您可以使用之前被认为是冲突的路线。以下示例完全符合您的预期。-d带着旗帜跑:

krakend run -d -c krakend.jsonJSON文件的内容是:

{
  "version": 2,
  "endpoints": [
    {
      "endpoint": "/city/vancouver",
      "backend": [
        {
          "url_pattern": "/__debug/vancouver",
          "host": [
            "http://localhost:8080"
          ]
        }
      ]
    },
    {
       "endpoint": "/city/toronto",
       "backend": [
         {
           "url_pattern": "/__debug/toronto",
           "host": [
             "http://localhost:8080"
           ]
         }
       ]
     },
    {
      "endpoint": "/city/{other}",
      "backend": [
        {
          "url_pattern": "/__debug/catchall",
          "host": [
            "http://localhost:8080"
          ]
        }
      ]
    }
  ]
}

推荐阅读