Agrega Node.js a un proxy de API existente

Estás viendo la documentación de Apigee Edge.
Ve a la Documentación de Apigee X.
información

Introducción

En este tema, se explica cómo agregar una aplicación de Node.js a un proxy existente en tu archivo local y cómo implementar el proxy en Apigee Edge.

Cómo preparar tu entorno de desarrollo

En este tema, suponemos que ya tienes un entorno de desarrollo de proxy configurado en tu en un sistema de archivos y quieres integrar en él una aplicación de Node.js.

La estructura básica de una aplicación proxy que incluye una app de Node.js sigue el patrón se muestra en la figura a continuación, con un /apiproxy base carpetas y subcarpetas de recursos, destinos y proxies. Los archivos Node.js deben estar en la carpeta apiproxy/resources/node y dónde se colocará. Las otras carpetas contienen archivos en formato XML que definen los extremos proxy y de destino, el flujo de proxy, flujos condicionales, etcétera. Para obtener una descripción más completa de la estructura del proxy de API, consulta la referencia de configuración del proxy de API.

Recuerda que cualquier código de Node.js que sea parte del proxy debe colocarse /apiproxy/resources/node. Ahí es donde Edge espera para encontrarlo cuando se implemente.

Especifica el destino de Node.js con ScriptTarget

La clave para integrar Node.js en un proxy es especificar el parámetro <ScriptTarget> elemento en al archivo XML del extremo de destino. En la estructura del archivo proxy, este archivo en formato XML se encuentra en apiproxy/targets. De forma predeterminada, el nombre del archivo es default.xml.

Para contextualizar, considera que un extremo de destino suele apuntar a un servicio de backend de algún tipo. En este caso, accedemos al servicio de destino simulado de Apigee. Una definición de extremo de destino se ve así esto:

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

La clase <HTTPTargetConnection> especifica la URL del servicio de backend, el servidor de servicio de destino ficticio.

Sin embargo, en el caso de Node.js, la La aplicación de Node.js en sí misma es el destino. Debes especificar esto con &lt;ScriptTarget&gt; en el archivo apiproxy/targets/default.xml.

En lugar del objetivo con la clase <HTTPTargetConnection> para especificar la URL de una servicio de backend, se hace referencia directamente a la aplicación de Node.js con un objeto <ScriptTarget> de la siguiente manera:

<TargetEndpoint name="default">
    <ScriptTarget>
         <ResourceURL>node://server.js</ResourceURL>
    </ScriptTarget>
    <PreFlow name="PreFlow">
        <Request/>
        <Response/>
    </PreFlow>
</TargetEndpoint>

La clase <ResourceURL> siempre debe tener el prefijo node://, seguido del nombre de la secuencia de comandos principal de Node.js. Además, como se mencionó antes, los recursos de Node.js deben residen en /apiproxy/resources/node en el permiso del proxy de API.

Puedes establecer parámetros adicionales en ScriptTarget. Para obtener detalles, consulta Configuración avanzada de ScriptTarget.

A los fines de este ejemplo, aquí está el código fuente del archivo principal Node.js, llamado server.js Es el HTTP básico servidor que muestre “Hello World!” cuando recibe una solicitud:

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 resumen, suponiendo que la aplicación principal de Node.js se implementa en un archivo llamada server.js y que los parámetros de configuración del extremo están con el nombre default.xml, el proxy de API que contiene el La secuencia de comandos de Node.js tiene la siguiente estructura:

/apiproxy/proxyName.xml
/apiproxy/proxies/default.xml
/apiproxy/targets/default.xml
/apiproxy/resources/node/server.js

Prepárate para implementar la aplicación

La mayoría de las apps de Node.js tienen archivos de dependencia y, además, incluyen un archivo package.json en el directorio base. En este caso, la mejor es ejecutar la utilidad npm para garantizar que el directorio node_modules de nivel superior se propaga con las dependencias antes de la implementación. Si hay dependencias remotas que no están incluido en node_modules, tu aplicación de Node.js no se ejecutará en Edge.

Puedes recuperar fácilmente todas las dependencias en tu sistema de archivos mediante la utilidad npm:

  1. Desde el directorio base de tu aplicación de Node.js, ejecuta lo siguiente:
$ npm install 

o

$ npm update

Cuando se instalen las dependencias, estarás listo para implementar tu proxy en Edge.

Implementa la app de Node.js en Apigee Edge

Antes de la implementación, deberás saber el nombre de tu organización, el nombre de usuario y la contraseña de tu cuenta de Apigee Edge. Necesitas esta información para formar correctamente el comando de la herramienta de implementación.

Este es el comando. Se supone (con la marca -d) que estás en el directorio raíz de tu proxy. Si tu proxy se llama foo, ingresa este comando desde el foo:

$ apigeetool deployproxy -u username -p password -o org -e test -n hellonode -d .
Para obtener información sobre el significado de cada una de las marcas de comando, haz lo siguiente:

$ apigeetool deployproxy -h

Para ver un resumen rápido, haz lo siguiente:

  • -n Este marcador te permite y especificar el nombre del proxy que se creará cuando se implemente la app. Verás lo siguiente: en la IU de administración.
  • -d especifica la directorio raíz del proxy de API.
  • -o, -e, -u y -p especifican el nombre de la organización. el entorno de implementación, el nombre de usuario y la contraseña.
Eso es todo. Tu app de Node.js se une en un proxy de API, se implementa en Edge y se ejecuta. Integra está esperando solicitudes y lista para probarse.

Prueba el nuevo proxy de API

Acabas de agregar una app de Node.js a un proxy de API existente y, luego, lo implementaste en Apigee. Edge. Para probarlo, ejecuta este comando cURL. Suponemos que se usa la ruta base predeterminada (/) (ruta base se especifica en el archivo de configuración del extremo del proxy). Asegúrate de reemplazar tu organización nombre de org_name. Si no si tienes cURL instalado, puedes ingresar la URL en un navegador.

$ curl http://org_name-test.apigee.net/
Hello, Node!

Visualiza el nuevo proxy en la IU de administración

Accede a tu cuenta de Apigee Edge y ve a la página Proxies de API. Verás el proxy llamado “hellonode”. que aparece allí.

Haz clic en “hellonode”. para ver los detalles del proxy. En la vista Desarrollo, podrás ver los el código fuente que subiste, agregar políticas, editar flujos, etc.

Próximos pasos

Para obtener información sobre cómo depurar aplicaciones de Node.js que se ejecutan en Apigee Edge, consulta Depuración y solución de problemas en Node.js proxies.