Você está vendo a documentação do Apigee Edge.
Acesse a documentação da
Apigee X. informações
Introdução
Neste tópico, explicamos como adicionar um aplicativo Node.js a um proxy existente no seu sistema de arquivos local e como implantar o proxy no Apigee Edge.
Como preparar seu ambiente para desenvolvedores
Neste tópico, presumimos que você já tenha um ambiente de desenvolvimento de proxy configurado no sistema local e que queira integrar um aplicativo Node.js a ele.
A estrutura básica de um aplicativo proxy que inclui um app Node.js segue o padrão
mostrado na figura abaixo, com uma pasta base /apiproxy
e subpastas para recursos, destinos e proxies. A pasta apiproxy/resources/node é onde os arquivos Node.js precisam ser
colocados. As outras pastas contêm arquivos XML que definem endpoints de proxy e de destino, fluxo de proxy,
fluxos condicionais e assim por diante. Para uma descrição mais completa da estrutura do proxy de API, consulte Referência de configuração do proxy de API.
Lembre-se de que qualquer código do Node.js que faça parte do proxy precisa ser colocado em /apiproxy/resources/node. É onde o Edge espera encontrá-lo quando ele for implantado.
Especificar o destino do Node.js com ScriptTarget
A chave para integrar o Node.js a um proxy é especificar o elemento <ScriptTarget> no arquivo XML do endpoint de destino. Na estrutura de arquivos do proxy, esse arquivo XML está localizado em apiproxy/targets. Por padrão, o nome do arquivo é default.xml.
Para entender melhor, considere que um endpoint de destino geralmente aponta para um serviço de back-end. Neste caso, encontramos o serviço de destino simulado da Apigee. Uma definição de endpoint de destino tem esta aparência:
<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>
O elemento <HTTPTargetConnection> especifica o URL do serviço de back-end, o serviço de destino simulado da Apigee.
No entanto, no caso do Node.js, o aplicativo Node.js é o alvo. Especifique isso com <ScriptTarget> no arquivo apiproxy/targets/default.xml.
Em vez de o destino usar o elemento <HTTPTargetConnection> para especificar o URL de um serviço de back-end, o aplicativo Node.js é referenciado diretamente usando um elemento <ScriptTarget>, como este:
<TargetEndpoint name="default"> <ScriptTarget> <ResourceURL>node://server.js</ResourceURL> </ScriptTarget> <PreFlow name="PreFlow"> <Request/> <Response/> </PreFlow> </TargetEndpoint>
O parâmetro <ResourceURL> precisa sempre ter o prefixo node://
,
seguido pelo nome do script principal do Node.js. E, como observado anteriormente, os recursos do Node.js precisam
residir em /apiproxy/resources/node
no escopo do proxy da API.
É possível definir outros parâmetros em ScriptTarget. Para detalhes, consulte Configuração avançada do ScriptTarget.
Para este exemplo, aqui está o código-fonte do arquivo principal do Node.js, chamado server.js. É o servidor HTTP básico que retorna "Hello World!" quando recebe uma solicitação:
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'); });
Para resumir, supondo que o aplicativo principal Node.js seja implementado em um arquivo
chamado server.js
e que as configurações do endpoint sejam
nomeadas default.xml
, o proxy da API que contém o
script Node.js tem a seguinte estrutura:
/apiproxy/proxyName.xml /apiproxy/proxies/default.xml /apiproxy/targets/default.xml /apiproxy/resources/node/server.js
Preparar para implantar o aplicativo
A maioria dos apps Node.js tem arquivos de dependência e inclui um arquivo package.json no diretório base. Nesse caso, a prática recomendada é executar o utilitário npm para garantir que o diretório node_modules de nível superior seja preenchido com as dependências antes da implantação. Se houver dependências remotas que não estejam incluídas em node_modules, o aplicativo Node.js não será executado no Edge.
É possível recuperar facilmente todas as dependências no seu sistema de arquivos usando o utilitário npm:
- No diretório base do aplicativo Node.js, execute:
$ npm install
ou
$ npm update
Quando as dependências estiverem instaladas, você vai poder implantar o proxy no Edge.
Implantar o app Node.js no Apigee Edge
Antes da implantação, você precisa saber o nome da organização, o nome de usuário e a senha da sua conta do Apigee Edge. Você precisa dessas informações para formar corretamente o comando da ferramenta de implantação.
Este é o comando. Ele pressupõe (com a sinalização -d) que você está no diretório raiz do proxy. Se o proxy se chamar foo, digite este comando no diretório foo:
$ apigeetool deployproxy -u username -p password -o org -e test -n hellonode -d .Para saber o que cada uma das flags de comando significa, faça o seguinte:
$ apigeetool deployproxy -h
Resumo rápido:
- -n: essa flag permite especificar o nome do proxy que será criado quando o app for implantado. Esse nome vai aparecer na IU de gerenciamento.
- -d: especifica o diretório raiz do proxy da API.
- -o, -e, -u e -p especificam o nome da organização, o ambiente de implantação, o nome de usuário e a senha.
Testar o novo proxy da API
Você acabou de adicionar um app Node.js a um proxy de API e implantá-lo na Apigee Edge. Para testar, execute este comando cURL. Consideramos que o caminho de base padrão (/) é usado. O caminho de base é especificado no arquivo de configuração do endpoint do proxy. Não se esqueça de substituir o nome da sua organização por org_name. Se você não tiver o cURL instalado, insira o URL em um navegador.
$ curl http://org_name-test.apigee.net/
Hello, Node!
Conferir o novo proxy na interface de gerenciamento
Faça login na sua conta do Apigee Edge e acesse a página de proxies de API. O proxy "hellonode" vai aparecer listado.
Clique em "hellonode" para conferir detalhes sobre o proxy. Na visualização de desenvolvimento, é possível ver o código-fonte enviado, adicionar políticas, editar fluxos e assim por diante.
Próximas etapas
Para informações sobre como depurar aplicativos Node.js executados no Apigee Edge, consulte Como depurar e resolver problemas de proxies do Node.js.