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.