Экспресс-шлюз, как игнорировать путь, но использовать остальную часть 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, запрос направляется на локальный: 8001 / приложение / категория

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


person rbuno    schedule 03.08.2018    source источник


Ответы (1)


Для этого вам необходимо использовать плагин перезаписи Express-Gateway. .

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

eg plugin install express-gateway-plugin-rewrite

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

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

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

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

person Kevin Swiber    schedule 03.08.2018