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.