Política ReadPropertySet

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.

This element has the following attributes that are common to all policies:

Attribute Default Required? Description
name N/A Required

The internal name of the policy. The value of the name attribute can contain letters, numbers, spaces, hyphens, underscores, and periods. This value cannot exceed 255 characters.

Optionally, use the <DisplayName> element to label the policy in the management UI proxy editor with a different, natural-language name.

continueOnError false Optional Set to false to return an error when a policy fails. This is expected behavior for most policies. Set to true to have flow execution continue even after a policy fails. See also:
enabled true Optional Set to true to enforce the policy. Set to false to turn off the policy. The policy will not be enforced even if it remains attached to a flow.
async   false Deprecated This attribute is deprecated.

A tabela seguinte apresenta uma descrição geral dos elementos subordinados 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 Name com base no elemento ref e, em seguida, no valor. Se nenhuma das opções for resolvível, aplica-se o <DefaultValue>, se tiver sido fornecido.

<Name> e <Key> combinam-se para formar propertyset.{value_resolved_from_Name}.{value_resolved_from_Key}.

<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 Key com base no elemento ref e, em seguida, no valor. Se nenhuma das opções for resolvível, aplica-se o <DefaultValue>, se tiver sido fornecido.

<Name> e <Key> combinam-se para formar propertyset.{value_resolved_from_Name}.{value_resolved_from_Key}.

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

  • Fora do âmbito (não disponível no fluxo específico onde a política está a ser executada)
  • ou
  • Não é possível resolver (não está definido).

Se <IgnoreUnresolvedVariables> for falso e <DefaultValue> não for especificado, a resolução falha.

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:
  • Não está definida nenhuma referência nem nome para <Name>
  • Não está definida nenhuma referência nem nome para <Key>
  • Não foi fornecido nenhum valor para <AssignTo>

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.