Express Gateway, как игнорировать путь, но использовать остальную часть URL

Мои конфигурации как ниже

apiEndpoints:
  api:
    host: '*'
    paths: '/ip'
  approval-engine:
    host: '*'
    paths: '/app/*'
serviceEndpoints:
  httpbin:
    url: 'https://httpbin.org'
  approval-engine:
    url: 'http://localhost:8001/'

С прокси как

  - proxy:
      - action:
          serviceEndpoint: approval-engine
          ignorePath: false
          prependPath: false
          autoRewrite : true
          changeOrigin: true

Когда я делаю запрос к http://localhost:8080/app/category, запрос направляется на localhost:8001/app/category

У меня вопрос, можем ли мы направить запрос на http://localhost:8001/category. Я хочу игнорировать пути: / app / part в прокси.

1 ответ

Решение

Для этого вам понадобится плагин Express-Gateway Rewrite.

Вы можете использовать eg CLI для установки плагина.

eg plugin install express-gateway-plugin-rewrite

Удостовериться rewrite включен в конфигурацию шлюза policies Белый список.

В конвейере, который обрабатывает запрос, вы можете использовать плагин rewrite следующим образом:

policies:
  - rewrite:
    - condition:
        name: regexpmatch
        match: ^/app/(.*)$
      action:
        rewrite: /$1

Это должно удалить /app от пути до того, как запрос направляется в конечную точку службы.

Другие вопросы по тегам