Esta página se aplica à Apigee e à Apigee híbrida.
Confira a documentação da Apigee Edge.
O acesso à variável de fluxo message
e as propriedades dela depende do ponto dentro
do fluxo do proxy de API em que ela é acessada. Ela está disponível em todos os contextos, enquanto alguns objetos,
como request
ou response
, não.
Casos de uso
O principal caso de uso da variável de fluxo message
é quando o proxy entra no fluxo
de erros: as variáveis de fluxo request
e response
estão fora do escopo.
Por exemplo, no fluxo de erro, o objeto response
não está disponível. Não será possível
definir cabeçalhos de resposta no objeto response
com a política JavaScript
se você estiver no fluxo de erros. Em vez disso, use uma das seguintes opções:
Esses dois objetos estão disponíveis no fluxo de erros e podem ser usados para definir cabeçalhos de resposta de uma política JavaScript ou serem acessados em outras políticas que podem usar variáveis de fluxo.
Use a política "AssignMessage" para atribuir valores, como cabeçalhos, ao objeto resposta. O recurso "Atribuir mensagem" lida automaticamente com a chave no contexto do fluxo de solicitação/resposta para o fluxo de erros.
Outro caso de uso da variável message
é registrar dados de resposta no
PostClientFlow com a política MessageLogging. Se você usar o objeto message
,
poderá registrar facilmente as informações de resposta seguindo as condições de sucesso e erro
no proxy.
Exemplos
Em um fluxo de erros, é possível definir um cabeçalho de resposta de uma política JavaScript usando
error
ou message
. Exemplo:
context.setVariable('error.header.FOO-1', 'error_header');
OU
context.setVariable('message.header.FOO-2', 'message_header');
No entanto, a expressão a seguir não funcionará:
context.setVariable('response.header.FOO-3', 'response_header');
Nesse caso, a variável response
está fora do escopo
no fluxo de erros. Observe que, em um trace, essa característica é indicada visualmente nas variáveis
com um sinal de igual cortado por uma barra.
Para definir cabeçalhos de resposta para fluxos de sucesso e erros em uma política única,
use message
dentro de uma política JavaScript. Exemplo:
<faultrules> <faultrule name="invalid_key_rule"> <step> <name>SetResponseHeaders</name> </step> <condition>(fault.name = "InvalidApiKey")</condition> </faultrule> </faultrules>
Na política, um código como o seguinte define o cabeçalho de erro/resposta em qualquer contexto de fluxo:
context.setVariable('message.header.FOO-1', 'the header value');
É possível reutilizar essa mesma política no fluxo de ProxyResponse normal e ela será bem-sucedida porque
o message
está disponível em todos os contextos.