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://
, los parámetros de cadena de consulta api-id
.execute-api.us-east-2
.amazonaws.com/pets?id=4&type=dog
?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 Gateway envía una solicitud a api-id
.execute-api.us-east-2
.amazonaws.com/store/checkouthttps://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:
Coincidencia completa para una ruta y método.
Haga coincidir una ruta y un método con una variable de ruta ambiciosa (
{proxy+}
).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:
GET /pets/dog/1
GET /pets/dog/{id}
GET /pets/{proxy+}
ANY /{proxy+}
$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 |
---|---|---|
|
|
La solicitud coincide completamente con esta ruta estática. |
|
|
La solicitud coincide completamente con esta ruta. |
|
|
La solicitud no coincide completamente con una ruta. La ruta con un método |
|
|
El método |