Esta é a documentação do Apigee Edge.
Acesse
Documentação da Apigee X. informações
Introdução
Use o módulo apigee-access
para acessar o fluxo do Apigee Edge
variáveis em um aplicativo Node.js. O módulo tem métodos para receber, configurar e excluir variáveis. Ele também tem um método conveniente para definir uma variável de número inteiro.
As variáveis de fluxo existem no contexto de um fluxo de proxy de API. Algumas variáveis são "integradas" para Borda Outras são criadas quando as políticas são executadas, e você pode criar suas próprias variáveis. Fluxo as variáveis normalmente são usadas para transmitir dados de uma política a outra e para definir condições em fluxos condicionais. Para informações sobre variáveis de fluxo, consulte Variáveis de fluxo e e condições.
Para conferir uma introdução ao módulo apigee-access
e a outros recursos dele, consulte
Como usar o módulo apigee-access.
Exemplo funcional
Imagine que uma política de borda em execução no caminho do fluxo de solicitações define uma variável chamada
AuthenticatedUserId
: O código a seguir acessa essa variável e a exibe em uma
de registro. Além disso, esse código define uma variável. É possível acessar essa variável em uma política
que ilustramos abaixo.
var http = require('http'); var apigee = require('apigee-access'); http.createServer(function (request, response) { // The request parameter must be a request object that came from the http module var userId = apigee.getVariable(request, 'AuthenticatedUserId'); apigee.setVariable(request, "custom.foo", "Bar"); console.log('Authenticated Apigee User ID is %s', userId); response.writeHead(200, {'Content-Type': 'text/plain'}); response.end('Hello World\n'); }).listen(8124); console.log('Server running at http://127.0.0.1:8124/');
Copie esse código em um arquivo JavaScript, implante-o no Edge e faça um teste. Chame o método
server.js
. Para implantá-lo, use:
apigeetool deploynodeapp -u username -p password -o myorg -e test -n access -d . -m server.js -b /access
Depois de implantar o aplicativo no Edge, adicione uma políticaAssignMessage com o seguinte para o fluxo de solicitação do ProxyEndpoint:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AssignMessage async="false" continueOnError="false" enabled="true" name="AddUserId"> <DisplayName>AddUserId</DisplayName> <FaultRules/> <Properties/> <AssignVariable> <Name>AuthenticatedUserId</Name> <Value>ntesla</Value> <Ref/> </AssignVariable> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
Em seguida, anexe outra políticaAssignMessage ao pré-fluxo de resposta do TargetEndpoint:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <AssignMessage async="false" continueOnError="false" enabled="true" name="SetHeader"> <DisplayName>SetHeader</DisplayName> <FaultRules/> <Properties/> <Set> <Headers> <Header name="MySpecialHeader">{custom.foo}</Header> </Headers> </Set> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </AssignMessage>
É possível chamar o proxy da seguinte forma:
curl -i http://myorg-test.apigee.net/access
Agora, vá para a página do proxy de acesso na interface do usuário de gerenciamento e abra a Desenvolver. Clique em Registros do Node.js para conferir a saída do registro proxy. Se o proxy estiver configurado corretamente, você verá que a variável userId foi definida. Você também vai ver que o cabeçalho foi definido na saída do cURL na janela do terminal:
HTTP/1.1 200 OK Content-Type: text/plain Date: Tue, 27 05 2014 23:20:52 GMT MySpecialHeader: Bar Content-Length: 12 Connection: keep-alive
Métodos
getVariable
var result = getVariable(httpRequest, name);
Recebe uma variável nomeada.
Parâmetros:
httpRequest
: o objeto de solicitação que vem do módulo http.name
: (string) o nome da variável a ser recuperada.
Retorna:
Uma string ou um número, dependendo do tipo que foi definido usando setVariable(), quando foi criada por você em outro lugar ou quando foi criada por uma política. Se você estiver acessando um dos variáveis do Edge prontas para uso, você encontra uma lista de tipos na Referência de variáveis. Para tipos de variáveis criados pelas políticas, consulte o tópico de referência da política específica.
Exemplos:
var apigee = require('apigee-access'); // "httpRequest" must be a request object that came from the http module var val1 = apigee.getVariable(request, 'TestVariable'); var val2 = apigee.getVariable(request, 'request.client.ip');
setVariable
setVariable(httpRequest, name, value);
Define uma variável. Algumas variáveis são somente leitura e o método setVariable() gera uma caso você tente definir um deles. Para determinar quais variáveis são somente leitura, consulte o painel Variáveis Referência.
Parâmetros:
httpRequest
: o objeto de solicitação que vem do módulo http.name
: (string) o nome da variável a ser recuperada.value
: pode ser um número, string, booleano, nulo ou indefinido.
Exemplo:
var apigee = require('apigee-access'); apigee.setVariable(request, 'TestVariable', 'bar'); // This will throw an exception because client.ip is read-only. apigee.setVariable(request, 'client.ip');
setIntVariable
setIntVariable(httpRequest, name, value);
O método setIntVariable() é um método de conveniência que primeiro força o parâmetro de valor a um número inteiro e o define.
Parâmetros:
httpRequest
: o objeto de solicitação que vem do módulo http.name
: (string) o nome da variável a ser definida.value
: o parâmetro do valor precisa ser uma string ou um número.
Exemplo:
var apigee = require('apigee-access'); // Convert "123" to an integer and set it apigee.setIntVariable(request, 'TestVariable', '123'); // Use something that's already a number apigee.setIntVariable(request, 'TestVariable2', 42);
deleteVariable
Exclui uma variável nomeada. É um erro excluir uma variável somente leitura. Para um guia lista de variáveis somente leitura, consulte a Referência de variáveis.
deleteVariable(httpRequest, name);
Parâmetros:
httpRequest
: o objeto de solicitação que vem do módulo http.name
: (string) o nome da variável a ser excluída.
Exemplo:
apigee.deleteVariable(request, 'TestVariable'); // This will throw an exception because client.ip is a read-only variable. apigee.deleteVariable(request, 'client.ip');