我的微服务正在端口3000
中运行,我正在尝试通过express-js gateway
代理请求
但是我在微服务中访问路由时遇到了问题
微服务路线
app.use('/sample',(req,res)=>{
res.json({
message:'Run with microservice'
})
})
我可以访问此路由http://localhost:3000/sample
。
这是我的gateway.config.yml
。
http:
port: 3004
admin:
port: 9876
hostname: localhost
apiEndpoints:
test:
host: localhost
paths: '/test'
serviceEndpoints:
test:
url: 'http://localhost:3002/'
policies:
- basic-auth
- cors
- expression
- key-auth
- log
- oauth2
- proxy
- rate-limit
pipelines:
test:
apiEndpoints:
- test
policies:
- proxy:
- action:
serviceEndpoint: test
changeOrigin: true
当我尝试通过http://localhost:3004/test/sample
访问微服务路由时,返回cannot get route error
。
答案 0 :(得分:0)
通常,请确保查看我们的Path Management Piece。这将帮助您了解转发到您的服务的PATH是什么。
专门讨论您的问题-如果您想转发一条可以“继续”超出规范的路径,则需要将路径定义从/test
更改为/test*
。这会指示网关路径不完整,并且可能会提供其他内容。
此外,在服务方面,我将app.use
更改为app.get
,以便您只收听您感兴趣的VERBS。
干杯!
答案 1 :(得分:-1)
您必须加入Express-Microservice。
这样的事情。
app.get('/test',(req,res)=>{
res.json({
message:'Run with microservice'
})
})
答案 2 :(得分:-1)
我会选择Janus-https://hellofresh.gitbooks.io/janus/来进行API网关管理,因为它专门针对此问题。看看,让我知道你的想法。