Tutoriel : Création d'une API REST avec intégration d'un proxy HTTP - 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.

Tutoriel : Création d'une API REST avec intégration d'un proxy HTTP

L'intégration de proxy HTTP est un mécanisme simple, puissant et polyvalent pour créer une API qui permet à une application web d'accéder à plusieurs ressources ou fonctionnalités du point de terminaison HTTP intégré, comme la totalité du site web, à l'aide d'une configuration rationalisée d'une seule méthode d'API. Dans l'intégration de proxy HTTP, API Gateway transmet au backend la demande de méthode envoyée par le client. Les données de la demande transmises incluent les en-têtes de demande, les paramètres de chaîne de requête, les variables du chemin de l'URL et la charge utile. Le point de terminaison HTTP du serveur principal ou le serveur web analyse les données de la demande entrante pour déterminer la réponse qu'il renvoie. L'intégration de proxy HTTP permet l'interaction directe entre le client et le backend sans intervention d'API Gateway après la configuration de la méthode d'API, sauf pour les problèmes connus comme les caractères non pris en charge, qui sont énumérés dans les Remarques importantes concernant Amazon API Gateway.

Grâce à la ressource de proxy globale {proxy+} et au verbe fourre-tout ANY de la méthode HTTP, vous pouvez utiliser une intégration de proxy HTTP pour créer une API d'une seule méthode d'API. La méthode expose l'ensemble des ressources et opérations HTTP accessibles publiquement d'un site web. Lorsque le serveur web principal ouvre de nouvelles ressources pour l'accès public, le client peut utiliser ces nouvelles ressources avec la même configuration d'API. Pour ce faire, le développeur du site web doit communiquer clairement au développeur du client quelles sont les nouvelles ressources et quelles opérations sont applicables pour chacune d'entre elles.

À titre de présentation rapide, le didacticiel suivant illustre l'intégration de proxy HTTP. Dans le didacticiel, nous créons une API à l'aide de la console API Gateway pour l'intégrer au PetStore site Web via une ressource proxy générique{proxy+}, et nous créons l'espace réservé à la méthode HTTP deANY.

Création d'une API avec l'intégration de proxy HTTP à l'aide de la console API Gateway

La procédure suivante explique comment créer et tester une API avec une ressource de proxy pour un backend HTTP à l'aide de la console API Gateway. Le backend HTTP est le site web PetStore (http://petstore-demo-endpoint.execute-api.com/petstore/pets) provenant du Tutoriel : créer un REST API avec une HTTP intégration sans proxy, dans lequel les captures d'écran sont utilisées comme aides visuelles pour illustrer les éléments de l'interface utilisateur API Gateway. Si c'est la première fois que vous utilisez la console API Gateway pour créer une API, il se peut que vous souhaitiez suivre d'abord les instructions de cette section.

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 HTTPProxyAPI.

  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).

Dans cette étape, vous créez un chemin de ressource de proxy de {proxy+}. Il s’agit de l’espace réservé de chacun des points de terminaison du backend sous http://petstore-demo-endpoint.execute-api.com/. Par exemple, il peut être petstore, petstore/pets et petstore/pets/{petId}. API Gateway crée la méthode ANY lorsque vous créez la ressource {proxy+} et sert d’espace réservé pour chacun des verbes HTTP pris en charge au moment de l’exécution.

Pour créer une ressource/{proxy+}
  1. Choisissez votre API.

  2. Dans le volet de navigation principal, choisissez Ressources.

  3. Choisissez Créer une ressource.

  4. Activez Ressource proxy.

  5. Conservez Chemin de la ressource sous la forme /.

  6. Sous Resource Name (Nom de la ressource), entrez {proxy+}.

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

  8. Choisissez Créer une ressource.

    Créez une ressource enfant.

Au cours de cette étape, vous intégrez la méthode ANY à un point de terminaison HTTP de backend à l’aide d’une intégration par proxy. Dans l’intégration de proxy HTTP, API Gateway transmet au backend la requête de méthode envoyée par le client sans intervention d’API Gateway.

Pour créer une méthode ANY
  1. Choisissez la ressource /{proxy+}.

  2. Choisissez la méthode ANY.

  3. Sous le symbole d’avertissement, choisissez Modifier l’intégration. Vous ne pouvez pas déployer une API dotée d’une méthode sans intégration.

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

  5. Activez Intégration de proxy HTTP.

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

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

  8. Choisissez Enregistrer.

Test d'une API avec l'intégration de proxy HTTP

Indique si la réussite d'une demande client particulière dépend de ce qui suit :

  • Si le serveur principal a rendu disponible le point de terminaison du serveur principal correspondant et, si tel est le cas, a accordé les autorisations d'accès requises.

  • Si le client fournit la bonne entrée.

Par exemple, l' PetStore API utilisée ici n'expose pas la /petstore ressource. À ce titre, vous obtenez une réponse 404 Resource Not Found contenant le message d'erreur Cannot GET /petstore.

De plus, le client doit être en mesure de gérer le format de sortie du serveur principal afin de pouvoir analyser le résultat correctement. API Gateway n'intervient pas pour faciliter les interactions entre le client et le backend.

Pour tester une API intégrée au PetStore site Web à l'aide de l'intégration d'un proxy HTTP via la ressource proxy
  1. Sélectionnez l'onglet Test. Vous devrez peut-être choisir la flèche droite pour afficher l'onglet.

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

  3. Pour Chemin, sous proxy, saisissez petstore/pets.

  4. Pour Chaînes de requête, saisissez type=fish.

  5. Sélectionnez Tester).

    Utilisez la fonction de test pour tester une méthode.

    Comme le site web du serveur principal prend en charge la demande GET /petstore/pets?type=fish, il renvoie une réponse positive similaire à ce qui suit :

    [ { "id": 1, "type": "fish", "price": 249.99 }, { "id": 2, "type": "fish", "price": 124.99 }, { "id": 3, "type": "fish", "price": 0.99 } ]

    Si vous essayez d'appeler GET /petstore, vous obtenez une réponse 404 avec le message d'erreur Cannot GET /petstore. Cela est dû au fait que le serveur principal ne prend pas en charge l'opération spécifiée. Si vous appelezGET /petstore/pets/1, vous obtenez une 200 OK réponse avec la charge utile suivante, car la demande est prise en charge par le PetStore site Web.

    { "id": 1, "type": "dog", "price": 249.99 }

Vous pouvez utiliser un navigateur pour tester votre API. Déployez votre API et associez-la à une étape pour créer l’URL d’invocation de votre API.

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

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

  3. Sous Stage name (Nom de l'étape), entrez test.

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

  5. Choisissez Deploy (Déployer).

Les clients peuvent désormais appeler votre API.

Pour invoquer votre API
  1. Connectez-vous à la console API Gateway à l'adresse https://console.aws.amazon.com/apigateway.

  2. Choisissez votre API.

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

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

    Saisissez l’URL d’invocation de votre API dans un navigateur Web.

    L'URL complète doit ressembler à https://abcdef123.execute-api.us-east-2.amazonaws.com/test/petstore/pets?type=fish.

    Votre navigateur envoie une requête GET à l'API.

  5. Le résultat doit être identique à celui renvoyé lorsque vous utilisez Test depuis la console API Gateway.