Creación de rutas para las API de HTTP en API Gateway - Amazon API Gateway

Creación de rutas para las API de HTTP en API Gateway

Las rutas dirigen las solicitudes entrantes de la API a los recursos de backend. Las rutas constan de dos partes: un método HTTP y una ruta de recurso, por ejemplo, GET /pets. Puede definir métodos HTTP específicos para su ruta. O bien, puede utilizar el método ANY para que coincida con todos los métodos que no haya definido para un recurso. Puede crear una ruta $default que actúe como método catch-all para las solicitudes que no coincidan con ninguna otra ruta.

nota

API Gateway descodifica los parámetros de solicitud codificados con URL antes de pasarlos a las integraciones de backend.

Trabajar con variables de ruta

Puede utilizar variables de ruta en rutas de API HTTP.

Por ejemplo, la ruta GET /pets/{petID} captura una solicitud GET que un cliente envía a https://api-id.execute-api.us-east-2.amazonaws.com/pets/6.

Una variable de ruta ambiciosa captura todos los recursos secundarios de una ruta. Para crear una variable de ruta ambiciosa, agregue + al nombre de la variable, por ejemplo, {proxy+}. La variable de ruta expansiva debe estar al final de la ruta del recurso.

Trabajar con parámetros de cadena de consulta

De forma predeterminada, API Gateway envía parámetros de cadena de consulta a su integración de backend si se incluyen en una solicitud a una API HTTP.

Por ejemplo, cuando un cliente envía una solicitud a https://api-id.execute-api.us-east-2.amazonaws.com/pets?id=4&type=dog, los parámetros de cadena de consulta ?id=4&type=dog se envían a su integración.

Trabajar con la ruta $default

La ruta $default captura solicitudes que no coinciden explícitamente con otras rutas en su API.

Cuando la ruta $default recibe una solicitud, API Gateway envía la ruta de solicitud completa a la integración. Por ejemplo, puede crear una API con solo una ruta $default e integrarla en el método ANY con el punto de enlace HTTP https://petstore-demo-endpoint.execute-api.com. Cuando envía una solicitud a https://api-id.execute-api.us-east-2.amazonaws.com/store/checkout, API Gateway envía una solicitud a https://petstore-demo-endpoint.execute-api.com/store/checkout.

Para obtener más información acerca de las integraciones de HTTP, consulte Uso de integraciones de proxy de HTTP para las API de HTTP.

Enrutamiento de solicitudes de la API

Cuando un cliente envía una solicitud de la API, API Gateway primero determina hacia qué etapa dirigir la solicitud. Si la solicitud coincide explícitamente con una etapa, API Gateway envía la solicitud a esa etapa. Si ninguna etapa coincide completamente con la solicitud, API Gateway envía la solicitud a la etapa $default. Si no hay ninguna etapa $default, la API devuelve {"message":"Not Found"} y no genera registros de CloudWatch.

Después de seleccionar una etapa, API Gateway selecciona una ruta. API Gateway selecciona la ruta con la coincidencia más específica y aplica las siguientes prioridades:

  1. Coincidencia completa para una ruta y método.

  2. Haga coincidir una ruta y un método con una variable de ruta ambiciosa ({proxy+}).

  3. La ruta $default.

Si ninguna ruta coincide con una solicitud, API Gateway devuelve {"message":"Not Found"} al cliente.

Por ejemplo, piense en una API con una etapa $default y las siguientes rutas de ejemplo:

  1. GET /pets/dog/1

  2. GET /pets/dog/{id}

  3. GET /pets/{proxy+}

  4. ANY /{proxy+}

  5. $default

    En la siguiente tabla se resume la forma en que API Gateway enruta las solicitudes a las rutas de ejemplo.

Solicitud Ruta seleccionada Explicación

GET https://api-id.execute-api.region.amazonaws.com/pets/dog/1

GET /pets/dog/1

La solicitud coincide completamente con esta ruta estática.

GET https://api-id.execute-api.region.amazonaws.com/pets/dog/2

GET /pets/dog/{id}

La solicitud coincide completamente con esta ruta.

GET https://api-id.execute-api.region.amazonaws.com/pets/cat/1

GET /pets/{proxy+}

La solicitud no coincide completamente con una ruta. La ruta con un método GET y una variable de ruta ambiciosa captura esta solicitud.

POST https://api-id.execute-api.region.amazonaws.com/test/5

ANY /{proxy+}

El método ANY coincide con todos los métodos que no ha definido para una ruta. Las rutas con variables de ruta ambiciosas tienen mayor prioridad que la ruta $default.