Política ReadPropertySet

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 name pode conter letras, números, espaços, hífenes, sublinhados e pontos finais. Este valor não pode exceder 255 carateres.

Opcionalmente, use o elemento <DisplayName> para etiquetar a política no editor de proxy da IU de gestão com um nome diferente em linguagem natural.

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