Cette rubrique explique comment créer et accéder à un service backend HTTP dans API Gateway.
Prérequis
Vous avez créé un environnement de cloud privé virtuel (VPC). Pour plus d'informations, consultez les rubriques Créer un VPC avec un bloc CIDR IPv4 et Créer un VPC avec un bloc CIDR IPv6.
Vous avez créé une instance Elastic Compute Service (ECS). Pour plus d'informations, consultez la section Étape 1 : Créer une instance ECS.
Dans cet exemple, nous utilisons une instance ECS déployée dans un VPC. L'instance ECS se trouve dans la même région que l'instance API Gateway. Apache est déployé sur l'instance ECS et utilise le port par défaut 80. Pour plus d'informations, consultez la section Étape 4 : Déployer Apache.
Processus
Cette rubrique fournit un guide étape par étape qui commence par la création d'un service backend. Le guide couvre également la création d'une API et d'une application, ainsi que leur association. En outre, cette rubrique explique comment déboguer l'API en ligne à l'aide d'un exemple basé sur un SDK et d'un exemple basé sur cURL.
Le processus comprend six étapes :
Créer un service backend : configurez un service backend en tant que ressource dans la région où réside votre instance API Gateway. Vous pouvez sélectionner directement le service backend configuré lors de la création d'une API.
Créer un groupe d'API : créez un groupe d'API. Les API sont gérées par groupes selon leurs types métier et la structure organisationnelle de l'entreprise.
Créer une API : créez une API dans la console API Gateway.
Créer une application et l'autoriser à appeler l'API : créez et autorisez une application qui servira d'identité pour appeler l'API.
Déboguer l'API : vérifiez si l'API fonctionne comme prévu en utilisant la fonctionnalité de débogage en ligne fournie par la console API Gateway.
Appeler l'API : utilisez un SDK fourni par API Gateway ou exécutez une commande cURL dans un outil en ligne de commande cURL pour appeler l'API.
Étape 1 : Créer un service backend
API Gateway vous permet de configurer des services backends en tant que ressources d'une région afin de simplifier la gestion. Il vous suffit de créer un service backend dans la console API Gateway et de configurer différentes URL pour ce service selon les environnements. Vous pouvez ensuite sélectionner directement le service backend configuré pour créer une API.
Connectez-vous à la console API Gateway. Dans la barre de navigation supérieure, sélectionnez une région. Dans le volet de navigation de gauche, choisissez . Ensuite, cliquez sur Create Backend Service dans le coin supérieur droit.
Dans la boîte de dialogue Create Backend Service, définissez Name sur
httpd-onlineet Type surHTTP/HTTPS Service, puis cliquez sur Confirm.Sur la page Backend Services, cliquez sur le service backend
httpd-online. Sur la page Backend Service Definition, cliquez sur l'onglet Production puis sur Create dans le coin supérieur droit.-
Sur la page Basic Information, saisissez
http://192.168.*.***:80dans la zone Backend Service URL et cliquez sur Publish.Remarquehttp://192.168.*.***:80correspond à l'adresse IP privée de l'instance ECS créée.
Étape 2 : Créer un groupe d'API
Les API sont gérées au sein de groupes d'API. Vous devez créer un groupe d'API avant de créer une API.
Sur la page API Groups, affichez le groupe créé et cliquez sur son nom pour accéder à la page Group Details. Sur la page Group Details, vous pouvez bind a domain name, modify basic information et change the instance type pour le groupe d'API.
API Gateway attribue automatiquement un nom de domaine public de deuxième niveau au groupe d'API. Ce nom de domaine est utilisé uniquement à des fins de débogage et est limité à 100 appels par jour pour les régions situées en dehors de la Chine continentale, et à 1 000 appels par jour pour les régions situées en Chine continentale. Nous vous recommandons de lier un nom de domaine indépendant après avoir créé un groupe d'API.
Dans le volet de navigation de gauche, choisissez . Sur la page API Groups, cliquez sur Create Group dans le coin supérieur droit.
Dans la boîte de dialogue Create Group, sélectionnez une instance dans la liste déroulante Instances, définissez Group Name sur
httpd-demo, définissez BasePath sur/, puis cliquez sur Confirm.
Étape 3 : Créer une API
Dans le volet de navigation de gauche, choisissez . Sur la page API Groups, localisez le groupe
httpd-demoque vous avez créé et cliquez sur Manage APIs dans la colonne Actions.Sur la page APIs, cliquez sur Create API dans le coin supérieur droit.
-
À l'étape Basic Information, configurez les paramètres et cliquez sur Next. Le tableau suivant décrit les paramètres :
Parameter
Example
Group
httpd-demo
API Name
httpd-test
Security authentication
Alibaba Cloud App
AppCode Authentication
Enable AppCode Authentication (Header & Query)
Signature Algorithm
HMAC_SHA256
-
À l'étape Define API Request, configurez les paramètres suivants et cliquez sur Next.
RemarqueÀ cette étape, vous définissez la manière dont un client, tel qu'un navigateur web, une application mobile ou un système métier, demande l'API. Les paramètres à configurer incluent le protocole, le chemin de la requête, la méthode HTTP, le mode de requête et les paramètres de la section Request Parameters. Dans cet exemple, le paramètre Request Mode est défini sur Pass-through. Cela signifie qu'API Gateway ne traite pas les paramètres envoyés par le client et les transmet directement au backend.
Définissez Protocol sur HTTP et HTTPS, Request path sur /, HTTP Method sur GET et Inbound Request Mode sur pass-through.
-
À l'étape Define Backend Service, configurez les paramètres suivants et cliquez sur Next.
RemarqueDéfinissez la manière dont API Gateway mappe et traite les paramètres, et comment il se connecte à l'adresse backend après avoir reçu une requête client. Dans cet exemple, le type de service backend est HTTP(S) Service.
Parameter
Example
Configuration Mode
Sélectionnez Use Existing Backend Service.
Backend Service Type
Sélectionnez HTTP/HTTPS Service.
Backend Service
httpd-onlineBackend Request Path
/
HTTP Method
GET
Backend Service Timeout Period
10000
À l'étape Define Response, configurez les paramètres de la page selon vos besoins métier, puis cliquez sur Create.
Dans le message qui s'affiche, cliquez sur Publish.
-
Dans la boîte de dialogue Publish API, définissez Environment sur Release, saisissez des remarques dans la section Remarks, puis cliquez sur Publish.
RemarqueAprès avoir modifié une API, vous devez la publier dans l'environnement correspondant pour que la modification prenne effet. API Gateway propose trois environnements intégrés : test, pre-release et production.
Étape 4 : Créer une application et l'autoriser à appeler l'API
Une application est l'identité que vous utilisez pour appeler une API. À l'étape Créer une API de cet exemple, la méthode d'authentification est définie sur Alibaba Cloud App. Par conséquent, après la publication de l'API, vous devez créer une application et lui accorder les autorisations nécessaires pour appeler l'API.
Créer une application
Dans le volet de navigation de gauche, choisissez . Sur la page Apps, cliquez sur Create App dans le coin supérieur droit.
Saisissez un nom d'application dans le champ App Name et cliquez sur Confirm. Dans cet exemple, le nom de l'application est httpd.
Sur la page Apps, cliquez sur l'application
httpdque vous avez créée. Sur la page App Details, vous constatez que deux méthodes d'authentification sont disponibles :AppKeyetAppCode. La méthodeAppKeycomprend une paireAppKeyetAppSecret, qui fonctionne de manière similaire à un couple nom d'utilisateur et mot de passe. Lorsque vous appelez l'API, vous devez transmettreAppKeyen tant que paramètre.AppSecretsert à calculer les signatures. API Gateway vérifie la paire AppKey-AppSecret pour authentifier votre identité.
Autoriser l'application à appeler l'API
Dans le volet de navigation de gauche, choisissez . Sur la page APIs, localisez l'API
http-testet cliquez sur
> Authorize dans la colonne Actions.Sur la page Authorize, définissez le paramètre Stage sur Production. Saisissez le nom de l'application que vous avez créée dans la barre de recherche de la section Choose Apps for Authorization. Dans les résultats de recherche, sélectionnez l'application créée, cliquez sur Add dans la colonne Actions, puis sur Confirm. Un message apparaît pour vous informer que l'application est autorisée à appeler l'API.
Étape 5 : Déboguer l'API
API Gateway prend en charge le débogage en ligne. Nous vous recommandons d'utiliser cette fonctionnalité pour vérifier si une API est correctement configurée avant de l'appeler depuis des clients.
Dans le volet de navigation de gauche, choisissez . Sur la page Debug API, sélectionnez l'API
httpd-test, définissez Verification Method sur Use AppSecret, puis cliquez sur Send Request.-
Si l'appel aboutit, examinez les informations de réponse pour confirmer que la configuration est réussie.
Un appel réussi renvoie un code d'état HTTP 200 OK et un corps de réponse contenant le contenu de la page de test par défaut du service Apache backend, tel que « It works! ». Cela confirme qu'API Gateway s'est connecté avec succès au service backend.
Étape 6 : Appeler l'API
En suivant les étapes précédentes, vous avez créé et publié l'API, créé et autorisé une application à l'appeler, et débogué l'API. À cette étape, vous pouvez utiliser les SDK fournis par API Gateway pour appeler une API publiée depuis un système métier.
Utiliser un SDK
Dans le volet de navigation de gauche, choisissez . Dans la section Sample Code for Node.js Signature in Other Languages, sélectionnez un langage, par exemple Node.js, et cliquez sur View Sample Code for Node.js.
-
Exécutez la commande
$ npm install aliyun-api-gateway -Spour installer le SDK d'exemple pour Node.js à l'aide de npm.Dans l'extrait de code suivant, remplacez
YOUR_APP_KEYetYOUR_APP_SECRETpar l'AppKey et l'AppSecret de l'application créée dans cet exemple.// Import the SDK for Node.js that you downloaded. const Client = require('aliyun-api-gateway').Client; // Create an instance for the authorized application. Specify the AppKey and AppSecret of the authorized application. const client = new Client('YOUR_APP_KEY','YOUR_APP_SECRET'); async function get() { // Use the domain name of the API group to which the API that you want to call belongs. You can use the public second-level domain name provided by API Gateway to test API calls. However, a limit is imposed on the number of API calls. We recommend that you bind an independent domain name to the API Group. var url = 'YOUR_GROUP_DOMAIN'; var result = await client.get(url, { // Specify the request header. Some APIs can return data formats based on the specified response type. We recommend that you manually define the request header based on your business requirements. headers: { accept: 'application/json' }, }); console.log(JSON.stringify(result)); } get().catch((err) => { console.log(err.stack); });
Utiliser cURL
Dans le volet de navigation de gauche, choisissez Call APIs > Apps. Sur la page Apps, cliquez sur l'application autorisée et obtenez son AppCode sur la page qui s'affiche. Ensuite, utilisez l'exemple de code suivant pour appeler l'API :
curl -i -X GET "http://3fbf0648d01e4aa5a1d*******-cn-hangzhou.alicloudapi.com" -H "Authorization:APPCODE c404eca23959492b9f0e4d4d15****"
HTTP/1.1 200 OK
Date: Tue, 01 Aug 2023 09:41:07 GMT
Content-Type: text/html
Content-Length: 4897
Server: Apache/2.4.6 (CentOS)
X-Ca-Request-Id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<title>Apache HTTP Server Test Page</title>
</head>
<body>
...
<h1>Testing 123..</h1>
<p>This page is used to test the proper operation of the Apache HTTP server...</p>
...
</body>
</html>