Didacticiel : création d’une API REST avec une intégration HTTP sans proxy - Amazon API Gateway

Didacticiel : création d’une API REST avec une intégration HTTP sans proxy

Dans ce didacticiel, vous créez une API à partir de zéro à l’aide de la console Amazon API Gateway. Vous pouvez envisager la console comme un studio de conception d’API et l’utiliser pour affiner les fonctions d’API, tester ses comportements, créer l’API et la déployer par étapes.

Création d’une API avec l’intégration HTTP personnalisée

Cette section vous guide tout au long des procédures de création de ressources, d’exposition de méthodes sur une ressource, de configuration d’une méthode pour obtenir les comportements d’API souhaités, et de test et de déploiement de l’API.

Au cours de cette étape, vous créez une API vide. Dans les étapes suivantes, vous allez créer des ressources et des méthodes pour connecter votre API au point de terminaison http://petstore-demo-endpoint.execute-api.com/petstore/pets, à l’aide d’une intégration HTTP autre que de proxy.

Pour créer une API
  1. Connectez-vous à la console API Gateway à l’adresse https://console.aws.amazon.com/apigateway.

  2. Si vous utilisez API Gateway pour la première fois, vous voyez une page qui vous présente les fonctions du service. Sous REST API (API REST), choisissez Build (Création). Lorsque la fenêtre contextuelle Create Example API (Créer API exemple) s’affiche, cliquez sur OK.

    Si ce n’est pas la première fois que vous utilisez API Gateway, choisissez Create API (Créer une API). Sous REST API (API REST), choisissez Build (Création).

  3. Sous API name (Nom de l’API), saisissez HTTPNonProxyAPI.

  4. (Facultatif) Sous Description, entrez une description.

  5. Laissez Type de point de terminaison d’API défini sur Régional.

  6. Sélectionnez Create API (Créer une API).

L’arborescence Resources affiche la ressource racine (/) sans aucune méthode. Au cours de cet exercice, nous allons créer l’API avec l’intégration HTTP personnalisée du site web PetStore (http://petstore-demo-endpoint.execute-api.com/petstore/pets.) À titre d’illustration, nous allons créer une ressource /pets en tant qu’enfant de la racine et exposer une méthode GET sur cette ressource pour qu’un client puisse récupérer une liste d’éléments Pets disponibles à partir du site web PetStore.

Pour créer une ressource /pets
  1. Choisissez Créer une ressource.

  2. Maintenez Ressource proxy désactivée.

  3. Conservez Chemin de ressource sous la forme /.

  4. Pour Nom de la ressource, entrez pets.

  5. Maintenez CORS (Partage des ressources entre origines multiples) désactivé.

  6. Choisissez Créer une ressource.

Dans cette étape, vous créez une méthode GET pour la ressource /pets. La méthode GET est intégrée avec le site web http://petstore-demo-endpoint.execute-api.com/petstore/pets. Les autres options disponibles pour une méthode d’API sont les suivantes :

  • POST, principalement utilisée pour créer des ressources enfants.

  • PUT, principalement utilisée pour mettre à jour les ressources existantes (et, bien que ce ne soit pas recommandé, peut être utilisée pour créer des ressources enfants).

  • DELETE, utilisée pour supprimer des ressources.

  • PATCH, utilisée pour mettre à jour les ressources.

  • HEAD, principalement utilisée dans les scénarios de test. Cette option est comparable à GET, mais ne renvoie pas la représentation de la ressource.

  • OPTIONS, qui peut être utilisée par les appelants pour obtenir des informations sur les options de communication disponibles pour le service cible.

Dans la liste HTTP method, vous devez choisir pour la demande d’intégration une méthode HTTP prise en charge par le backend. Pour HTTP ou Mock integration, il est logique que la demande de méthode et la demande d’intégration utilisent le même verbe HTTP. Pour les autres types d’intégration, la demande de méthode utilisera probablement un autre verbe HTTP que la demande d’intégration. Par exemple, pour appeler une fonction Lambda, la demande d’intégration doit utiliser POST pour appeler la fonction, tandis que la demande de méthode peut utiliser n’importe quel verbe HTTP en fonction de la logique de la fonction Lambda.

Pour créer une méthode GET dans la ressource /pets
  1. Sélectionnez la ressource /pets.

  2. Choisissez Créer une méthode.

  3. Pour Type de méthode, sélectionnez GET.

  4. Pour Type d’intégration, sélectionnez Intégration HTTP.

  5. Maintenez Intégration de proxy HTTP désactivée.

  6. Pour Méthode HTTP, sélectionnez GET.

  7. Pour URL du point de terminaison, saisissez http://petstore-demo-endpoint.execute-api.com/petstore/pets.

    Le site web PetStore vous permet de récupérer une liste d’éléments Pet classée par type d’animal de compagnie (par exemple, « Chien » ou « Chat ») sur une page donnée.

  8. Pour Gestion de contenu, sélectionnez Transmettre.

  9. Choisissez Paramètres de chaîne de requête d’URL.

    Le site web PetStore utilise les paramètres de chaîne de requête type et page pour accepter une entrée. Vous devez ajouter les paramètres de chaîne de requête à la demande de méthode et les mapper aux paramètres de chaîne de requête de la demande d’intégration.

  10. Pour ajouter les paramètres de chaîne de requête, procédez comme suit :

    1. Sélectionnez Add query string (Ajouter une chaîne de requêtes).

    2. Pour Nom, saisissez type

    3. Gardez Obligatoire et Mise en cache désactivés.

    Répétez les étapes précédentes pour créer une chaîne de requête supplémentaire avec le nom page.

  11. Choisissez Créer une méthode.

Le client peut désormais fournir un type d’animal et un numéro de page comme paramètres de chaîne de requête lorsqu’il envoie une demande. Ces paramètres d’entrée doivent être mappés aux paramètres de chaîne de requête de la demande d’intégration pour transmettre les valeurs d’entrée à notre site web PetStore sur le serveur principal.

Pour mapper les paramètres d’entrée à la requête d’intégration
  1. Dans l’onglet Requête d’intégration, sous Paramètres de requête d’intégration, choisissez Modifier.

  2. Choisissez Paramètres de chaîne de requête d’URL, puis procédez comme suit :

    1. Choisissez Ajouter un paramètre de chaîne de requête d’URL.

    2. Pour Name (Nom), saisissez type.

    3. Pour Mappage à partir de, saisissez method.request.querystring.type.

    4. Maintenez Mise en cache désactivée.

    5. Choisissez Ajouter un paramètre de chaîne de requête d’URL.

    6. Pour Name (Nom), saisissez page.

    7. Pour Mappage à partir de, saisissez method.request.querystring.page.

    8. Maintenez Mise en cache désactivée.

  3. Choisissez Save (Enregistrer).

Pour tester l’API
  1. Choisissez l’onglet Test. Vous devrez peut-être choisir la flèche droite pour afficher l’onglet.

  2. Pour Chaînes de requête, saisissez type=Dog&page=2.

  3. Sélectionnez Tester.

    Le résultat est similaire à ce qui suit :

    Résultat du test d’appel de la méthode GET sur Pets

    Maintenant que le test est réussi, nous pouvons déployer l’API pour la rendre disponible publiquement.

  4. Sélectionnez Deploy API (Déployer une API).

  5. Pour Étape, sélectionnez Nouvelle étape.

  6. Sous Nom de l’étape, entrez Prod.

  7. (Facultatif) Sous Description, entrez une description.

  8. Choisissez Déployer.

  9. (Facultatif) Sous Détails de l’étape, pour Invoquer une URL, vous pouvez choisir l’icône de copie pour copier l’URL d’invocation de votre API. Vous pouvez l’utiliser avec des outils tels que Postman et cURL pour tester votre API.

Si vous utilisez un kit SDK pour créer un client, vous pouvez appeler les méthodes exposées par ce kit SDK pour signer la demande. Pour en savoir plus sur la mise en œuvre, consultez le kit AWS SDK de votre choix.

Note

Lorsque des modifications sont apportées à votre API, vous devez la redéployer pour rendre les nouvelles fonctions ou celles mises à jour disponibles avant d’appeler à nouveau l’URL de demande.

(Facultatif) Mapper les paramètres de requête.

Paramètres de demande de mappage pour une API API Gateway

Ce didacticiel montre comment créer un paramètre de chemin de {petId} sur la demande de méthode de l’API pour spécifier un ID d’élément, mapper celui-ci au paramètre de chemin {id} dans l’URL de la demande d’intégration, et envoyer la demande au point de terminaison HTTP.

Note

La saisie d’une lettre majuscule (ou vice versa) peut entraîner des erreurs ultérieurement dans la procédure.

Étape 1 : créer des ressources

Au cours de cette étape, vous créez une ressource avec un paramètre de chemin {petId}.

Pour créer la ressource {petId}
  1. Sélectionnez la ressource /pets, puis choisissez Créer une ressource.

  2. Maintenez Ressource proxy désactivée.

  3. Pour Chemin de ressource, sélectionnez /pets/.

  4. Pour Nom de la ressource, entrez {petId}.

    Encadrez petId par des accolades ({ }) pour afficher /pets/{petId}.

  5. Maintenez CORS (Partage des ressources entre origines multiples) désactivé.

  6. Choisissez Créer une ressource.

Étape 2 : créer et tester les méthodes

Au cours de cette étape, vous créez une méthode GET avec un paramètre de chemin {petId}.

Pour configurer la méthode GET
  1. Sélectionnez la ressource /{petId}, puis choisissez Créer une méthode.

  2. Pour Type de méthode, sélectionnez GET.

  3. Pour Type d’intégration, sélectionnez Intégration HTTP.

  4. Maintenez Intégration de proxy HTTP désactivée.

  5. Pour Méthode HTTP, sélectionnez GET.

  6. Pour URL du point de terminaison, saisissez http://petstore-demo-endpoint.execute-api.com/petstore/pets/{id}

  7. Pour Gestion de contenu, sélectionnez Transmettre.

  8. Maintenez Délai d’expiration par défaut activé.

  9. Choisissez Créer une méthode.

Vous devez maintenant mapper le paramètre de chemin {petId}que vous venez de créer au paramètre de chemin {id} dans l’URL du point de terminaison HTTP de la demande d’intégration. L’URL du point de terminaison HTTP était http://petstore-demo-endpoint.execute-api.com/petstore/pets/{id}.

Pour mapper le paramètre de chemin {petId}
  1. Dans l’onglet Requête d’intégration, sous Paramètres de requête d’intégration, choisissez Modifier.

  2. Choisissez Paramètres de chemin d’URL.

  3. API Gateway crée un paramètre de chemin pour la demande d’intégration nommée petId, mais il n’est pas valide pour l’URL du point de terminaison HTTP que vous avez défini comme intégration backend. Le point de terminaison HTTP utilise {id} comme paramètre de chemin. Pour Nom, supprimez delete petId et saisissez id.

    Cela mappe le paramètre de chemin petId de la demande de méthode au paramètre de chemin id de la demande d’intégration.

  4. Choisissez Save (Enregistrer).

Maintenant, testez la méthode.

Pour tester la méthode 
  1. Choisissez l’onglet Test. Vous devrez peut-être choisir la flèche droite pour afficher l’onglet.

  2. Sous Chemin pour petId, entrez 4.

  3. Sélectionnez Tester.

    Si le test aboutit, Corps de la réponse affiche les informations suivantes :

    { "id": 4, "type": "bird", "price": 999.99 }

Étape 3 : déployer l’API

Dans cette étape, vous allez déployer l’API afin de pouvoir commencer à l’appeler en dehors de la console API Gateway.

Pour déployer l’API
  1. Sélectionnez Deploy API (Déployer une API).

  2. Pour Étape, sélectionnez Prod.

  3. (Facultatif) Sous Description, entrez une description.

  4. Choisissez Déployer.

Étape 4 : tester l’API

Dans cette étape, vous allez sortir de la console API Gateway et utiliser votre API pour accéder au point de terminaison HTTP.

  1. Dans le volet de navigation principal, choisissez Étape.

  2. Sous Détails de l’étape, choisissez l’icône de copie pour copier l’URL d’invocation de votre API.

    Elle doit se présenter comme suit :

    https://my-api-id.execute-api.region-id.amazonaws.com/prod
  3. Entrez cette URL dans la zone d’adresse d’un nouvel onglet du navigateur et ajoutez /pets/4 à l’URL avant d’envoyer votre requête.

  4. Le navigateur retourne ce qui suit :

    { "id": 4, "type": "bird", "price": 999.99 }

Étapes suivantes

Vous pouvez personnaliser davantage votre API en activant la validation des requêtes, en transformant les données ou en créant des réponses de passerelle client.

Pour découvrir d’autres moyens de personnaliser votre API, consultez les didacticiels suivants :