Política ReadPropertySet

Informações gerais

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 name pode conter letras, números, espaços, hifens, sublinhados e pontos. Esse valor não pode exceder 255 caracteres.

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

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 Name com base em ref e, em seguida, no valor. Se não for possível resolver em nenhum dos casos, <DefaultValue> será aplicado, quando fornecido.

<Name> e <Key> são combinados com propertyset.{value_resolved_from_Name}.{value_resolved_from_Key}.

<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 Key com base em ref e, em seguida, no valor. Se não for possível resolver em nenhum dos casos, <DefaultValue> será aplicado, quando fornecido.

<Name> e <Key> são combinados com propertyset.{value_resolved_from_Name}.{value_resolved_from_Key}.

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

  • Fora do escopo (não disponível no fluxo específico em que a política está sendo executada)
  • ou
  • Não puder ser resolvida (não estiver definida).

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

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:
  • Nenhuma referência ou nome foi definido para <Name>
  • Nenhuma referência ou nome foi definido para <Key>
  • Nenhum valor foi fornecido para <AssignTo>

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.