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. 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.