es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  , , ,

Answer

  1. Avatar for 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í:

    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
    

    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.

Comments are closed.