Création de routes pour les API HTTP dans API Gateway - APIPasserelle Amazon

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Création de routes pour les API HTTP dans API Gateway

Route les demandes d'API entrantes directes vers les ressources dorsales. Les itinéraires se composent de deux parties : une méthode HTTP et un chemin de ressource (, par exempl, GET /pets. Vous pouvez définir des méthodes HTTP spécifiques pour votre itinéraire. Vous pouvez également utiliser la méthode ANY pour faire correspondre toutes les méthodes que vous n'avez pas définies pour une ressource. Vous pouvez créer un itinéraire $default qui agit comme un fourre-tout pour les demandes qui ne correspondent à aucun autre itinéraire.

Note

API Gateway décode les paramètres de demande encodés par URL avant de les transmettre à votre intégration backend.

Utilisation des variables de chemin

Vous pouvez utiliser des variables de chemin dans les itinéraires des API HTTP.

Par exemple, l'itinéraire GET /pets/{petID} attrape une demande GET qu’un client soumet à https://api-id.execute-api.us-east-2.amazonaws.com/pets/6.

Une variable de chemin gourmandes capture toutes les ressources enfants d'un itinéraire. Pour créer une variable de chemin gourmand, ajoutez + au nom de la variable ({proxy+}, par exemple). La variable de chemin gourmande doit se trouver à la fin du chemin de ressource.

Utilisation des paramètres de chaîne de requête

Par défaut, API Gateway envoie les paramètres de chaîne de requête à votre intégration backend s'ils sont inclus dans une demande adressée à une API HTTP.

Par exemple, lorsqu'un client envoie une demande à https://api-id.execute-api.us-east-2.amazonaws.com/pets?id=4&type=dog, les paramètres de chaîne de requête ?id=4&type=dog sont envoyés à votre intégration.

Utilisation de l'itinéraire $default

L'itinéraire $default attrape les demandes qui ne correspondent pas explicitement aux autres itinéraires de votre API.

Lorsque l'itinéraire $default reçoit une demande, API Gateway envoie le chemin de demande complet à l'intégration. Par exemple, vous pouvez créer une API avec seulement un itinéraire $default et l'intégrer à la méthode ANY avec le point de terminaison HTTP https://petstore-demo-endpoint.execute-api.com. Lorsque vous envoyez une demande à https://api-id.execute-api.us-east-2.amazonaws.com/store/checkout, API Gateway envoie une demande à https://petstore-demo-endpoint.execute-api.com/store/checkout.

Pour en savoir plus sur les intégrations HTTP, consultez Création d'intégrations de proxy HTTP pour les API HTTP.

Routage des demandes d'API

Lorsqu'un client envoie une demande d'API, API Gateway détermine d'abord à quelle étape doit être acheminée la demande. Si la demande correspond explicitement à une étape, API Gateway envoie la demande à cette dernière. Si aucune étape ne correspond entièrement à la demande, API Gateway envoie la demande à l'étape $default. S'il n'y a pas d'$defaultétape, l'API revient {"message":"Not Found"} et ne génère pas de CloudWatch journaux.

Après avoir sélectionné une étape, API Gateway sélectionne un itinéraire. API Gateway sélectionne l'itinéraire avec la correspondance la plus spécifique, en utilisant les priorités suivantes :

  1. Correspondance complète pour un itinéraire et une méthode.

  2. Correspondance pour une route et une méthode avec une variable de chemin gourmande ({proxy+}).

  3. L’itinéraire $default

Si aucun itinéraire ne correspond à une demande, API Gateway retourne {"message":"Not Found"} au client.

Par exemple, examinez une API avec une étape $default et les exemples d’itinéraires suivants :

  1. GET /pets/dog/1

  2. GET /pets/dog/{id}

  3. GET /pets/{proxy+}

  4. ANY /{proxy+}

  5. $default

    Le tableau suivant résume la façon dont API Gateway achemine les demandes vers les itinéraires de l'exemple.

Requête Itinéraire sélectionné Explication

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

GET /pets/dog/1

La demande correspond entièrement à cet itinéraire statique.

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

GET /pets/dog/{id}

La demande correspond entièrement à cet itinéraire.

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

GET /pets/{proxy+}

La demande ne correspond pas entièrement à un itinéraire. L'itinéraire avec une méthode GET et une variable de chemin gourmande attrape cette requête.

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

ANY /{proxy+}

La méthode ANY correspond à toutes les méthodes que vous n'avez pas définies pour un itinéraire. Les itinéraires avec des variables de chemin gourmandes ont une priorité plus élevée que l'itinéraire $default.