Vous consultez la documentation Apigee Edge.
Accédez à la
documentation Apigee X. info
Introduction
Cet article explique comment ajouter une application Node.js à un proxy existant sur votre système de fichiers local et comment déployer le proxy sur Apigee Edge.
Préparer votre environnement de développement
Dans cet article, nous partons du principe que vous disposez déjà d'un environnement de développement de proxy configuré sur votre système local et que vous souhaitez y intégrer une application Node.js.
La structure de base d'une application proxy qui inclut une application Node.js suit le modèle
illustré dans la figure ci-dessous, avec un dossier de base /apiproxy
et des sous-dossiers pour les ressources, les cibles et les proxys. Les fichiers Node.js doivent être placés dans le dossier apiproxy/resources/node. Les autres dossiers contiennent des fichiers XML qui définissent les points de terminaison de proxy et cible, le flux de proxy,
les flux conditionnels, etc. Pour obtenir une description plus complète de la structure du proxy d'API,
consultez la documentation de référence sur la configuration des proxys d'API.

N'oubliez pas que tout code Node.js faisant partie du proxy doit être placé sous /apiproxy/resources/node. C'est là qu'Edge s'attend à le trouver lors de son déploiement.
Spécifier la cible Node.js avec ScriptTarget
La clé de l'intégration de Node.js dans un proxy consiste à spécifier l'élément <ScriptTarget> dans le fichier XML du point de terminaison cible. Dans la structure de fichiers du proxy, ce fichier XML se trouve dans apiproxy/targets. Par défaut, le nom de fichier est default.xml.
Pour le contexte, considérez qu'un point de terminaison cible pointe généralement vers un service de backend d'un type ou d'un autre. Dans ce cas, nous atteignons le service de simulation cible Apigee. Une définition de point de terminaison cible se présente comme suit :
<TargetEndpoint name="default"> <Description/> <Flows/> <PreFlow name="PreFlow"> <Request/> <Response/> </PreFlow> <HTTPTargetConnection> <URL>http://mocktarget.apigee.net/</URL> </HTTPTargetConnection> <PostFlow name="PostFlow"> <Request/> <Response/> </PostFlow> </TargetEndpoint>
L'élément <HTTPTargetConnection> spécifie l'URL du service de backend, le service de simulation cible Apigee.
Toutefois, dans le cas de Node.js, l' application Node.js elle-même est la cible. Vous spécifiez cela avec <ScriptTarget> dans le apiproxy/targets/default.xml fichier.
Au lieu que la cible utilise l'élément <HTTPTargetConnection> pour spécifier l'URL d'un service de backend, l'application Node.js est référencée directement à l'aide d'un élément <ScriptTarget> element, comme suit :
<TargetEndpoint name="default"> <ScriptTarget> <ResourceURL>node://server.js</ResourceURL> </ScriptTarget> <PreFlow name="PreFlow"> <Request/> <Response/> </PreFlow> </TargetEndpoint>
Le paramètre <ResourceURL> doit toujours être précédé du préfixe node://,
suivi du nom du script Node.js principal. De plus, comme indiqué précédemment, les ressources Node.js doivent
résider dans /apiproxy/resources/node au niveau du proxy d'API.
Vous pouvez définir des paramètres supplémentaires dans ScriptTarget. Pour en savoir plus, consultez la section Configuration avancée de ScriptTarget.
Pour les besoins de cet exemple, voici le code source du fichier Node.js principal, appelé server.js. Il s'agit du serveur HTTP de base qui renvoie "Hello World!" lorsqu'il reçoit une requête :
var http = require('http'); console.log('node.js application starting...'); var svr = http.createServer(function(req, resp) { resp.end('Hello, Node!'); }); svr.listen(process.env.PORT || 9000, function() { console.log('Node HTTP server is listening'); });
En résumé, en supposant que l'application Node.js principale est implémentée dans un fichier
appelé server.js et que les configurations de point de terminaison sont
toutes deux nommées default.xml, le proxy d'API contenant le
script Node.js présente la structure suivante :
/apiproxy/proxyName.xml /apiproxy/proxies/default.xml /apiproxy/targets/default.xml /apiproxy/resources/node/server.js
Préparer le déploiement de l'application
La plupart des applications Node.js comportent des fichiers de dépendances et incluent un fichier package.json dans le répertoire de base. Dans ce cas, la bonne pratique consiste à exécuter l'utilitaire npm pour s'assurer que le répertoire node_modules de premier niveau est rempli des dépendances avant le déploiement. Si des dépendances distantes ne sont pas incluses dans node_modules, votre application Node.js ne s'exécutera pas sur Edge.
Vous pouvez facilement récupérer toutes les dépendances sur votre système de fichiers à l'aide de l'utilitaire npm :
- À partir du répertoire de base de votre application Node.js, exécutez :
$ npm install
ou
$ npm update
Une fois les dépendances installées, vous êtes prêt à déployer votre proxy sur Edge.
Déployer l'application Node.js sur Apigee Edge
Avant de déployer, vous devez connaître le nom de votre organisation, votre nom d'utilisateur et le mot de passe de votre compte Apigee Edge pour votre compte Apigee Edge. Vous avez besoin de ces informations pour former correctement la commande de l'outil de déploiement.
Voici la commande. Elle suppose (avec l'indicateur -d) que vous vous trouvez dans le répertoire racine de votre proxy. Si votre proxy est appelé foo, saisissez la commande suivante à partir du foo répertoire :
$ apigeetool deployproxy -u username -p password -o org -e test -n hellonode -d .
$ apigeetool deployproxy -h
Voici un résumé rapide :
- -n Cet indicateur vous permet de spécifier le nom du proxy qui sera créé lors du déploiement de l'application. Ce nom s'affichera dans l'UI de gestion.
- -d Spécifie le répertoire racine du proxy d'API.
- -o, -e, -u et -p spécifient le nom de l'organisation, l'environnement de déploiement, le nom d'utilisateur et le mot de passe.
Tester le nouveau proxy d'API
Vous venez d'ajouter une application Node.js à un proxy d'API existant et de déployer le proxy sur Apigee Edge. Pour le tester, exécutez cette commande cURL. Nous partons du principe que le chemin de base par défaut (/) est utilisé (le chemin de base est spécifié dans le fichier de configuration du point de terminaison de proxy). Veillez à remplacer le nom de votre organisation par org_name. Si cURL n'est pas installé, vous pouvez saisir l'URL dans un navigateur.
$ curl http://org_name-test.apigee.net/
Hello, Node!
Afficher le nouveau proxy dans l'UI de gestion
Connectez-vous à votre compte Apigee Edge et accédez à la page "Proxys d'API". Le proxy appelé "hellonode" s'y affiche.

Cliquez sur "hellonode" pour afficher des informations sur le proxy. Dans la vue "Développer", vous pouvez voir le code source que vous avez importé, ajouter des règles, modifier des flux, etc.

Étapes suivantes
Pour en savoir plus sur le débogage des applications Node.js exécutées sur Apigee Edge, consultez la section Débogage et dépannage des proxys Node.js.