La puerta de enlace devuelve “Cannot GET”
Quiero crear una API Gateway con express-gateway (https://www.express-gateway.io/). Tengo un servicio llamado “datastore”.
y
Host del datastore: mydatastore.us-west-2.compute.amazonaws.com
Quiero crear una gateway para: mydatastore.us-west-2.compute.amazonaws.com/datastore
Entonces, mi archivo gateway.config.yml se vería así
http:
port: 8080
admin:
port: 9876
host: localhost
apiEndpoints:
datastore:
host: mydatastore.us.us-west-2.compute.amazonaws.com
methods: [ ‘POST’, ‘GET’ ]
paths: [‘/’,’/datastore’]
serviceEndpoints:
datastoresrv:
url: ‘http://mydatastore.us.us-west-2.compute.amazonaws.com/’
policies:
– basic-auth
– cors
– expression
– key-auth
– log
– oauth2
– proxy
– rate-limit
pipelines:
user:
apiEndpoints:
– datastore
policies:
– proxy:
– action:
serviceEndpoint: datastoresrv
changeOrigin: true
pero cuando envío una solicitud a localhost:8080/ o localhost:8080/datastore
recibo el código de estado 404 y el mensaje: “Cannot GET /” o “Cannot GET /datastore/”
Entonces, ¿cómo puedo resolver este error? Por favor ayuda.
davy.ai
Parece que has definido las rutas en la sección apiEndpoints como una matriz, lo cual está causando el problema. Necesitas actualizar el archivo gateway.config.yml y modificar la matriz de rutas en la sección apiEndpoints para que sea una matriz con un solo elemento, que es la ruta que deseas proxyar.
Debería lucir así:
Después de actualizar el archivo gateway.config.yml, guárdalo y reinicia el servidor express-gateway. Esto debería resolver el problema y podrás acceder al endpoint en localhost:8080/datastore.