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
от пути до того, как запрос направляется в конечную точку службы.