Criar rotas para APIs HTTP no API Gateway
Roteia solicitações diretas recebidas de API para recursos de backend. As rotas consistem em duas partes: um método HTTP e um caminho de recurso, por exemplo, GET /pets
. É possível definir métodos HTTP específicos para a rota. Ou usar o método ANY
para corresponder a todos os métodos não definidos para um recurso. Você pode criar uma rota $default
que funciona como um catch-all para solicitações que não correspondem a nenhuma outra rota.
nota
O API Gateway decodifica parâmetros de solicitação codificados em URL antes de passá-los para integrações de back-end.
Trabalhar com variáveis de caminho
É possível usar variáveis de caminho em rotas de API HTTP.
Por exemplo, a rota GET /pets/{petID}
captura uma solicitação GET
que um cliente envia para https://
. api-id
.execute-api.us-east-2
.amazonaws.com/pets/6
Uma variável de caminho voraz captura todos os recursos filho de uma rota. Para criar uma variável de caminho voraz, adicione +
ao nome da variável, por exemplo, {proxy+}
. O parâmetro de caminho voraz deve estar no final do caminho do recurso.
Trabalhar com parâmetros de string de consulta
Por padrão, o API Gateway enviará parâmetros de string de consulta para a integração de backend se eles estiverem incluídos em uma solicitação para uma API Gateway.
Por exemplo, quando um cliente envia uma solicitação para https://
, os parâmetros de string de consulta api-id
.execute-api.us-east-2
.amazonaws.com/pets?id=4&type=dog
?id=4&type=dog
são enviados para a integração.
Trabalhar com a rota $default
A rota $default
captura solicitações que não correspondem explicitamente a outras rotas na API.
Quando a rota $default
recebe uma solicitação, o API Gateway envia o caminho de solicitação completo para a integração. Por exemplo, é possível criar uma API com apenas uma rota $default
e integrá-la ao método ANY
com o endpoint do HTTP https://petstore-demo-endpoint.execute-api.com
. Quando uma solicitação é enviada para https://
, o API Gateway envia uma solicitação para api-id
.execute-api.us-east-2
.amazonaws.com/store/checkouthttps://petstore-demo-endpoint.execute-api.com/store/checkout
.
Para saber mais sobre integrações HTTP, consulte Criar integrações de proxy HTTP para APIs HTTP.
Rotear solicitações de API
Quando um cliente envia uma solicitação de API, o API Gateway primeiro determina para qual estágio rotear a solicitação. Se a solicitação corresponder explicitamente a um estágio, o API Gateway enviará a solicitação para esse estágio. Se nenhum estágio corresponder totalmente à solicitação, o API Gateway enviará a solicitação para o estágio $default
. Se não houver estágio $default
, a API retornará {"message":"Not
Found"}
e não gerará logs do CloudWatch.
Depois de selecionar um estágio, o API Gateway seleciona uma rota. Ele seleciona a rota com a correspondência mais específica, usando as seguintes prioridades:
Correspondência completa para uma rota e um método.
Correspondência para uma rota e um método com uma variável de caminho voraz (
{proxy+}
).A rota
$default
.
Se nenhuma rota corresponder a uma solicitação, o API Gateway retornará {"message":"Not Found"}
ao cliente.
Por exemplo, considere uma API com um estágio $default
e as seguintes rotas de exemplo:
GET /pets/dog/1
GET /pets/dog/{id}
GET /pets/{proxy+}
ANY /{proxy+}
$default
A tabela a seguir resume como o API Gateway roteia solicitações para as rotas demonstrativas.
Solicitação | Rota selecionada | Explicação |
---|---|---|
|
|
A solicitação corresponde totalmente a esta rota estática. |
|
|
A solicitação corresponde totalmente a essa rota. |
|
|
A solicitação não corresponde totalmente a uma rota. A rota com um método |
|
|
O método |