Visão geral
A política ReadPropertySet lê conjuntos de propriedades e preenche a variável de fluxo com os resultados.
Esta é uma política padrão e pode ser implantada em qualquer tipo de ambiente. Nem todos os usuários têm necessidade de saber sobre os tipos de política e ambiente. Para informações sobre os tipos de políticas e a disponibilidade de cada tipo de ambiente, consulte Tipos de políticas.
Elemento <ReadPropertySet>
Define uma política ReadPropertySet.
Valor padrão | Consulte a guia Política padrão a seguir |
Obrigatório? | Obrigatório |
Tipo | Objeto complexo |
Elemento pai | N/A |
Elemento filho |
<Read> |
O elemento <ReadPropertySet>
usa a seguinte sintaxe:
Sintaxe
O elemento <ReadPropertySet>
usa a seguinte sintaxe:
<ReadPropertySet name="read-property-set"> <Read> <Name ref="set-ref">property-set-name</Name> <Key ref="key-ref">key-name</Key> <AssignTo>var1</AssignTo> <DefaultValue>default-value</DefaultValue> </Read> ... <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </ReadPropertySet>
Política padrão
O exemplo a seguir mostra as configurações padrão quando você adiciona uma política ReadPropertySet ao fluxo na interface da Apigee:
<ReadPropertySet name="read-property-set"> <Read> <Name ref="set-ref">property-set-name</Name> <Key ref="key-ref">key-name</Key> <AssignTo>var1</AssignTo> <DefaultValue>default-value</DefaultValue> </Read> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </ReadPropertySet>
Quando você insere uma nova política ReadPropertySet na interface da Apigee, o modelo contém stubs para todas as operações possíveis. Veja abaixo as informações sobre os elementos obrigatórios.
Este elemento tem os seguintes atributos comuns a todas as políticas:
Atributo | Padrão | Obrigatório? | Descrição |
---|---|---|---|
name |
N/A | Valor |
O nome interno da política. O valor do atributo Opcionalmente, use o elemento |
continueOnError |
falso | Opcional | Defina como false para retornar um erro quando uma política falhar. Esse é o comportamento esperado para
a maioria das políticas. Defina como true para que a execução do fluxo continue, mesmo depois que uma política
falhar. Consulte também:
|
enabled |
true | Opcional | Defina como true para aplicar a política. Defina como false para desativar a política. A política não será aplicada mesmo que permaneça vinculada a um fluxo. |
async |
falso | Obsoleto | Esse atributo está obsoleto. |
A tabela a seguir fornece uma descrição resumida dos elementos filhos de
<ReadPropertySet>
:
Elemento filho | Obrigatório? | Descrição |
---|---|---|
<Read> |
Obrigatório | Lê e resolve uma variável de conjunto de propriedades e a define como uma variável de fluxo especificada. |
<IgnoreUnresolvedVariables> |
Opcional | Determina se o processamento é interrompido quando um conjunto de propriedades não é resolvido. |
Exemplo
Nesta seção, fornecemos um exemplo que usa <ReadPropertySet>
.
Exemplo
Esse exemplo usa <ReadPropertySet>
para acessar
propertyset.environment.name.request.headers.api-version
e
atribuí-lo a target_url
. Se o valor do conjunto de propriedades não for recebido,
https://httpbin.org/get
será usado.
<ReadPropertySet name="read-property-set"> <Read> <Name ref="set-ref">environment.name</Name> <Key ref="key-ref">request.headers.api-version</Key> <AssignTo>target_url</AssignTo> <DefaultValue>https://httpbin.org/get</DefaultValue> </Read> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> </ReadPropertySet>
Referência a elementos filhos
Esta seção descreve os elementos filhos de <ReadPropertySet>
.
<Read>
Resolve uma variável de conjunto de propriedades e define o resultado em uma variável de fluxo.
O elemento <Read>
especifica a variável do conjunto de propriedades a ser resolvida e a variável de fluxo a ser
usada para definir esse valor. Ele também inclui um valor padrão opcional, que é usado no caso de um
conjunto de propriedades não resolvido. É possível incluir vários elementos <Read>
em uma única política <ReadPropertySet>
.
Valor padrão | N/A |
Obrigatório? | Opcional |
Tipo | Tipo complexo |
Elemento pai |
<ReadPropertySet>
|
Elemento filho |
<Name> <Key> <AssignTo> <DefaultValue> |
O elemento <Read>
usa a seguinte sintaxe:
Sintaxe
<Read> <Name ref="set-ref">property-set-name</Name> <Key ref="key-ref">key-name</Key> <AssignTo>var1</AssignTo> <DefaultValue>default-value</DefaultValue> </Read>
Exemplo
Esse exemplo usa <ReadPropertySet>
para acessar
propertyset.environment.name.request.headers.api-version
e
atribuí-lo a target_url
. Se o valor do conjunto de propriedades não for recebido,
https://httpbin.org/get
será usado.
<ReadPropertySet name="read-property-set"> <Read> <Name ref="environment.name">my-property-set-name</Name> <Key ref="request.headers.api-version">my-property-set-key</Key> <AssignTo>target_url</AssignTo> <DefaultValue>https://httpbin.org/get</DefaultValue> </Read> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> </ReadPropertySet>
A tabela a seguir fornece uma descrição resumida dos elementos filhos de
<Read>
.
Elemento filho | Obrigatório? | Descrição |
---|---|---|
<Name> |
Obrigatório | String O conjunto de propriedades a ser lido. Forneça ref , o valor ou ambos.
Primeiro, a Apigee tenta resolver
|
<Key> |
Obrigatório | String A chave do conjunto de propriedades usado ao resolver a variável. Forneça ref , o valor ou ambos.
Primeiro, a Apigee tenta resolver
|
<AssignTo> |
Obrigatório | String Especifica a variável de fluxo a ser atribuída à variável resolvida. |
<DefaultValue> |
Opcional | String Especifica um valor padrão a ser usado quando a variável não puder ser resolvida. |
<IgnoreUnresolvedVariables>
Determina se o processamento é interrompido quando um conjunto de propriedades não é resolvido. Defina como
true
para ignorar variáveis não resolvidas e continuar o processamento.
IgnoreUnresolvedVariables
não é aplicável quando <DefaultValue>
é fornecido.
Valor padrão | Falso |
Obrigatório? | Opcional |
Tipo | Booleano |
Elemento pai |
<ReadPropertySet>
|
Elemento filho | Nenhum |
Referência de erros
Nesta seção, descrevemos os códigos de falha e as mensagens de erro retornadas, bem como as variáveis
de falha definidas pela Apigee específicas para a política <ReadPropertySet>
.
Essas informações são importantes para saber se você está desenvolvendo regras de falha para
lidar com falhas. Para saber mais, consulte Tópicos importantes
sobre erros de política e Como lidar
com falhas.
Erros de execução
Esses erros podem ocorrer quando a política é executada.
Código de falha | Status HTTP | Causa |
---|---|---|
steps.readpropertyset.UnresolvedVariable |
500 |
Esse erro ocorrerá se uma variável especificada na política ReadPropertySet estiver:
Se |
Erros de implantação
Esses erros podem ocorrer quando você implanta um proxy que contém esta política.
Nome do erro | Causa |
---|---|
steps.readpropertyset.EmptyReads |
A política não tem elementos filhos <Read> . |
steps.readpropertyset.FieldUnset |
Esse código será retornado quando uma destas condições for verdadeira:
|
Variáveis de falha
Essas variáveis são definidas quando essa política aciona um erro no ambiente de execução. Para mais informações, consulte Tópicos importantes sobre erros de política.
Variáveis | Onde | Exemplo |
---|---|---|
fault.name="FAULT_NAME" |
FAULT_NAME é o nome da falha, conforme listado na tabela Erros de ambiente de execução acima. O nome da falha é a última parte do código de falha. | fault.name Matches "UnresolvedVariable" |
readpropertyset.POLICY_NAME.failed |
POLICY_NAME é o nome especificado pelo usuário da política que causou a falha. | readpropertyset.RPS-SetResponse.failed = true |
Exemplo de resposta de erro
{ "fault": { "faultstring": "ReadPropertySet[RPS-SetResponse]: unable to resolve variable [variable_name]", "detail": { "errorcode": "steps.readpropertyset.UnresolvedVariable" } } }
Exemplo de regra de falha
<FaultRule name="ReadPropertySet Faults"> <Step> <Name>RPS-CustomSetVariableErrorResponse</Name> <Condition>(fault.name = "SetVariableFailed")</Condition> </Step> <Condition>(readpropertyset.failed = true)</Condition> </FaultRule>
Esquemas
Cada tipo de política é definido por um esquema XML (.xsd
). Para referência, esquemas de política
estão disponíveis no GitHub.