Esta página aplica-se ao Apigee e ao Apigee Hybrid.
Veja a documentação do
Apigee Edge.
O acesso à variável de fluxo message
e às respetivas propriedades depende do ponto no fluxo do proxy de API em que é acedido. Está disponível em todos os contextos, ao contrário de alguns objetos, como request
ou response
.
Exemplos de utilização
O principal exemplo de utilização da variável de fluxo message
ocorre quando o proxy entra no fluxo de erros: as variáveis de fluxo request
e response
estão fora do âmbito.
Por exemplo, no fluxo de erros, o objeto response
não está disponível. Não pode
definir cabeçalhos de resposta no objeto response
com a política de JavaScript
se estiver no fluxo de erros. Em alternativa, pode usar uma das seguintes opções:
Ambos os objetos estão disponíveis no fluxo de erros e podem ser usados para definir cabeçalhos de respostas a partir de uma política de JavaScript ou ser acedidos noutras políticas que podem usar variáveis de fluxo.
Pode usar a política AssignMessage para atribuir valores, como cabeçalhos, ao objeto response. AssignMessage processa automaticamente a mudança no contexto do fluxo de pedido/resposta para o fluxo de erro.
Outro exemplo de utilização da variável message
é registar dados de resposta no PostClientFlow com a política MessageLogging. Se usar o objeto message
, pode registar facilmente informações de resposta após condições de êxito e de erro no proxy.
Exemplos
Num fluxo de erros, pode definir um cabeçalho da resposta a partir de uma política de JavaScript através de error
ou message
. Por exemplo:
context.setVariable('error.header.FOO-1', 'error_header');
OU
context.setVariable('message.header.FOO-2', 'message_header');
No entanto, a seguinte expressão não funciona:
context.setVariable('response.header.FOO-3', 'response_header');
Neste caso, a variável response
está fora do âmbito no fluxo de erros. (Tenha em atenção que, num rastreio, isto é indicado visualmente por variáveis apresentadas com um sinal de igual com uma barra a atravessá-lo.)
Para definir cabeçalhos de resposta para fluxos de êxito e de erro numa única política, pode usar message
numa política de JavaScript. Por exemplo:
<faultrules> <faultrule name="invalid_key_rule"> <step> <name>SetResponseHeaders</name> </step> <condition>(fault.name = "InvalidApiKey")</condition> </faultrule> </faultrules>
Na política, o código semelhante ao seguinte define o cabeçalho de erro/resposta em qualquer contexto de fluxo:
context.setVariable('message.header.FOO-1', 'the header value');
Pode reutilizar esta mesma política no fluxo ProxyResponse normal e vai ter êxito porque
message
está disponível em todos os contextos.