Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X. info
Introduzione
Questo argomento spiega come aggiungere un'applicazione Node.js a un proxy esistente sul file system locale e come eseguire il deployment del proxy in Apigee Edge.
Preparazione dell'ambiente di sviluppo
In questo argomento, presupponiamo che tu abbia già configurato un ambiente di sviluppo proxy sul tuo sistema locale e che tu voglia integrarvi un'applicazione Node.js.
La struttura di base di un'applicazione proxy che include un'app Node.js segue il pattern mostrato nella figura seguente, con una cartella di base /apiproxy e sottocartelle per resources, targets e proxies. La cartella apiproxy/resources/node è la posizione in cui devono essere collocati i file Node.js. Le altre cartelle contengono file XML che definiscono endpoint proxy e target, flussi proxy, flussi agevolati e così via. Per una descrizione più completa della struttura del proxy API, consulta Riferimento alla configurazione del proxy API.
Ricorda che qualsiasi codice Node.js che fa parte del proxy deve essere inserito in /apiproxy/resources/node. È qui che Edge si aspetta di trovarlo al momento del deployment.
Specifica il target Node.js con ScriptTarget
La chiave per integrare Node.js in un proxy è specificare l'elemento <ScriptTarget> nel file XML dell'endpoint di destinazione. Nella struttura del file proxy, questo file XML si trova in apiproxy/targets. Per impostazione predefinita, il nome file è default.xml.
Per fare chiarezza, tieni presente che un endpoint di destinazione in genere punta a un servizio di backend di qualche tipo. In questo caso, abbiamo contattato il servizio di destinazione fittizio Apigee. Una definizione di endpoint di destinazione è simile alla seguente:
<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'elemento <HTTPTargetConnection> specifica l'URL del servizio di backend, il servizio di destinazione simulato Apigee.
Tuttavia, nel caso di Node.js, l'applicazione Node.js è il target. Devi specificare questa condizione con <ScriptTarget> nel file apiproxy/targets/default.xml.
Anziché utilizzare l'elemento <HTTPTargetConnection> per specificare l'URL di un servizio di backend, viene fatto riferimento direttamente all'applicazione Node.js utilizzando un elemento <ScriptTarget>, come segue:
<TargetEndpoint name="default"> <ScriptTarget> <ResourceURL>node://server.js</ResourceURL> </ScriptTarget> <PreFlow name="PreFlow"> <Request/> <Response/> </PreFlow> </TargetEndpoint>
Il parametro <ResourceURL> deve sempre avere il prefisso node://
, seguito dal nome dello script Node.js principale. Inoltre, come indicato in precedenza, le risorse Node.js devono risiedere in /apiproxy/resources/node
nell'ambito del proxy API.
Puoi impostare parametri aggiuntivi in ScriptTarget. Per maggiori dettagli, vedi Configurazione avanzata di ScriptTarget.
Ai fini di questo esempio, di seguito è riportato il codice sorgente del file Node.js principale, chiamato server.js. Si tratta del server HTTP di base che restituisce "Hello World!" quando riceve una richiesta:
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'); });
Riassumendo, supponendo che l'applicazione Node.js main sia implementata in un file
denominato server.js
e che le configurazioni degli endpoint siano
entrambe denominate default.xml
, il proxy API contenente lo
script Node.js avrà la seguente struttura:
/apiproxy/proxyName.xml /apiproxy/proxies/default.xml /apiproxy/targets/default.xml /apiproxy/resources/node/server.js
Prepararsi a eseguire il deployment dell'applicazione
La maggior parte delle app Node.js ha file di dipendenza e include un file package.json nella directory di base. In questo caso, la best practice è eseguire l'utilità npm per garantire che la directory node_modules di primo livello venga compilata con le dipendenze prima del deployment. Se sono presenti dipendenze remote non incluse in node_modules, l'applicazione Node.js non verrà eseguita su Edge.
Puoi recuperare facilmente tutte le dipendenze nel tuo file system utilizzando l'utilità npm:
- Dalla directory di base dell'applicazione Node.js, esegui:
$ npm install
o
$ npm update
Una volta installate le dipendenze, puoi eseguire il deployment del proxy in Edge.
Esegui il deployment dell'app Node.js su Apigee Edge
Prima del deployment, dovrai conoscere il nome della tua organizzazione, il nome utente e la password per il tuo account Apigee Edge. Queste informazioni sono necessarie per formare correttamente il comando dello strumento di deployment.
Ecco il comando. Con il flag -d si presume che tu sia nella directory principale del proxy. Se il tuo proxy si chiama foo, inserisci questo comando dalla directory foo:
$ apigeetool deployproxy -u username -p password -o org -e test -n hellonode -d .Per informazioni sul significato di ciascun flag di comando, segui questa procedura:
$ apigeetool deployproxy -h
Ecco un breve riepilogo:
- -n Questo flag ti consente di specificare il nome del proxy che verrà creato durante il deployment dell'app. Questo nome verrà visualizzato nell'interfaccia utente di gestione.
- -d Specifica la directory radice del proxy API.
- -o, -e, -u e -p specificano il nome dell'organizzazione, l'ambiente di deployment, il nome utente e la password.
Testa il nuovo proxy API
Hai appena aggiunto un'app Node.js a un proxy API esistente e hai eseguito il deployment del proxy in Apigee Edge. Per testarlo, esegui questo comando cURL. Si presume che venga utilizzato il percorso di base predefinito ("/"), specificato nel file di configurazione dell'endpoint proxy. Assicurati di sostituire il nome della tua organizzazione con org_name. Se non hai installato cURL, puoi inserire l'URL in un browser.
$ curl http://org_name-test.apigee.net/
Hello, Node!
Visualizza il nuovo proxy nell'interfaccia utente di gestione
Accedi al tuo account Apigee Edge e vai alla pagina Proxy API. Vedrai il proxy denominato "hellonode".
Fai clic su "hellonode" per visualizzare i dettagli del proxy. Nella visualizzazione Sviluppa puoi visualizzare il codice sorgente caricato, aggiungere criteri, modificare i flussi e così via.
Passaggi successivi
Per informazioni sul debug delle applicazioni Node.js in esecuzione su Apigee Edge, consulta Debug e risoluzione dei problemi dei proxy Node.js.