Vista geral
A política ReadPropertySet lê conjuntos de propriedades e preenche a variável de fluxo com os resultados.
Esta política é uma política padrão e pode ser implementada em qualquer tipo de ambiente. Para obter informações sobre os tipos de políticas e a disponibilidade com cada tipo de ambiente, consulte Tipos de políticas.
<ReadPropertySet> elemento
Define uma política ReadPropertySet.
| Valor predefinido | Consulte o separador Política predefinida abaixo |
| Obrigatório? | Obrigatória |
| Tipo | Objeto complexo |
| Elemento principal | N/A |
| Elementos subordinados |
<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 predefinida
O exemplo seguinte mostra as predefinições quando adiciona uma política ReadPropertySet ao seu fluxo na IU do 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 insere uma nova política ReadPropertySet na IU do Apigee, o modelo contém stubs para todas as operações possíveis. Consulte abaixo informações sobre os elementos obrigatórios.
Este elemento tem os seguintes atributos comuns a todas as políticas:
| Atributo | Predefinição | Obrigatório? | Descrição |
|---|---|---|---|
name |
N/A | Obrigatório |
O nome interno da política. O valor do atributo Opcionalmente, use o elemento |
continueOnError |
falso | Opcional | Definido como false para devolver um erro quando uma política falha. Este comportamento é o esperado para a maioria das políticas. Definido como true para que a execução do fluxo continue mesmo depois de uma política falhar. Veja também:
|
enabled |
verdadeiro | Opcional | Defina como true para aplicar a política. Defina como false para desativar a política. A política não é aplicada, mesmo que permaneça anexada a um fluxo. |
async |
falso | Descontinuado | Este atributo foi descontinuado. |
A tabela seguinte apresenta uma descrição geral dos elementos secundários de
<ReadPropertySet>:
| Elemento secundário | Obrigatório? | Descrição |
|---|---|---|
<Read> |
Obrigatória | Lê e resolve uma variável de conjunto de propriedades e define-a para uma variável de fluxo especificada. |
<IgnoreUnresolvedVariables> |
Opcional | Determina se o processamento é interrompido quando um conjunto de propriedades não é resolvido. |
Exemplo
Esta secção apresenta um exemplo com <ReadPropertySet>.
Exemplo
Este exemplo usa <ReadPropertySet> para obter
propertyset.environment.name.request.headers.api-version e
atribuí-lo a target_url. Se o valor definido da propriedade não for obtido,
é usado https://httpbin.org/get.
<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 de elemento secundário
Esta secção descreve os elementos subordinados de <ReadPropertySet>.
<Read>
Resolve uma variável de conjunto de propriedades e define o resultado numa variável de fluxo.
O elemento <Read> especifica a variável do conjunto de propriedades a resolver e a variável de fluxo para
definir esse valor. Também inclui um valor predefinido opcional, que é usado no caso de um conjunto de propriedades não resolvido. Pode incluir vários elementos <Read> numa única política <ReadPropertySet>.
| Valor predefinido | N/A |
| Obrigatório? | Opcional |
| Tipo | Tipo complexo |
| Elemento principal |
<ReadPropertySet>
|
| Elementos subordinados |
<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
Este exemplo usa <ReadPropertySet> para obter
propertyset.environment.name.request.headers.api-version e
atribuí-lo a target_url. Se o valor definido da propriedade não for obtido,
é usado https://httpbin.org/get.
<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 seguinte fornece uma descrição geral dos elementos secundários de
<Read>.
| Elemento secundário | Obrigatório? | Descrição |
|---|---|---|
<Name> |
Obrigatória | String A propriedade definida para leitura. Indique o ref, o valor ou ambos.
O Apigee tenta primeiro resolver o elemento
|
<Key> |
Obrigatória | String A chave do conjunto de propriedades que é usada quando a variável é resolvida. Indique o ref, o valor ou ambos.
O Apigee tenta primeiro resolver o elemento
|
<AssignTo> |
Obrigatória | String Especifica a variável de fluxo à qual atribuir a variável resolvida. |
<DefaultValue> |
Opcional | String Especifica um valor predefinido a usar quando não é possível resolver a variável. |
<IgnoreUnresolvedVariables>
Determina se o processamento é interrompido quando um conjunto de propriedades não é resolvido. Definido como
true para ignorar variáveis não resolvidas e continuar o processamento.
IgnoreUnresolvedVariables não é aplicável quando <DefaultValue>
é fornecido.
| Valor predefinido | Falso |
| Obrigatório? | Opcional |
| Tipo | Booleano |
| Elemento principal |
<ReadPropertySet>
|
| Elementos subordinados | Nenhum |
Referência de erro
Esta secção descreve os códigos de falhas e as mensagens de erro devolvidas, bem como as variáveis de falhas definidas pelo Apigee específicas da política <ReadPropertySet>.
É importante conhecer estas informações se estiver a desenvolver regras de falhas para
resolver falhas. Para saber mais, consulte o artigo O que precisa de saber
acerca dos erros de políticas e Como processar
falhas.
Erros de tempo de execução
Estes erros podem ocorrer quando a política é executada.
| Código de falha | Estado de HTTP | Causa |
|---|---|---|
steps.readpropertyset.UnresolvedVariable |
500 |
Este erro ocorre se uma variável especificada na política ReadPropertySet for:
Se |
Erros de implementação
Estes erros podem ocorrer quando implementa um proxy que contém esta política.
| Nome do erro | Causa |
|---|---|
steps.readpropertyset.EmptyReads |
A política não tem elementos subordinados <Read>. |
steps.readpropertyset.FieldUnset |
Este código é devolvido quando qualquer uma das seguintes afirmações é verdadeira:
|
Variáveis de falha
Estas variáveis são definidas quando esta política aciona um erro no tempo de execução. Para mais informações, consulte o artigo O que precisa de saber sobre os erros de políticas.
| Variáveis | Onde | Exemplo |
|---|---|---|
fault.name="FAULT_NAME" |
FAULT_NAME é o nome da falha, conforme indicado na tabela Erros de tempo 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 utilizador da política que gerou 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, os esquemas de políticas
estão disponíveis no GitHub.