Il criterio ReadPropertySet legge i set di proprietà e compila la variabile di flusso con i risultati.
Questa policy è una policy standard e può essere implementata in qualsiasi tipo di ambiente. Per informazioni sui tipi di policy e sulla disponibilità con ogni tipo di ambiente, consulta Tipi di policy.
Elemento <ReadPropertySet>
Definisce una policy ReadPropertySet.
| Valore predefinito | Consulta la scheda Policy predefinita di seguito. |
| Obbligatorio? | Obbligatorio |
| Tipo | Oggetto complesso |
| Elemento principale | N/D |
| Elementi secondari |
<Read> |
L'elemento <ReadPropertySet> utilizza la seguente sintassi:
Sintassi
L'elemento <ReadPropertySet> utilizza la seguente sintassi:
<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>
Norme predefinite
L'esempio seguente mostra le impostazioni predefinite quando aggiungi un criterio ReadPropertySet al flusso nell'interfaccia utente 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 inserisci una nuova policy ReadPropertySet nell'interfaccia utente Apigee, il modello contiene stub per tutte le possibili operazioni. Per informazioni sugli elementi obbligatori, vedi di seguito.
Questo elemento ha i seguenti attributi comuni a tutti i criteri:
| Attributo | Predefinito | Obbligatorio? | Descrizione |
|---|---|---|---|
name |
N/D | Obbligatorio |
Il nome interno del criterio. Il valore dell'attributo Se vuoi, utilizza l'elemento |
continueOnError |
falso | Facoltativo | Imposta su false per restituire un errore quando un criterio non va a buon fine. Questo è un comportamento previsto per la maggior parte dei criteri. Imposta su true per continuare l'esecuzione del flusso anche dopo un fallimento del criterio. Vedi anche:
|
enabled |
true | Facoltativo | Imposta su true per applicare il criterio. Imposta su false per disattivare il
criterio. Il criterio non verrà applicato anche se rimane collegato a un flusso. |
async |
falso | Ritirato | Questo attributo è stato ritirato. |
La tabella seguente fornisce una descrizione generale degli elementi secondari di
<ReadPropertySet>:
| Elemento secondario | Obbligatorio? | Descrizione |
|---|---|---|
<Read> |
Obbligatorio | Legge e risolve una variabile del set di proprietà e la imposta su una variabile di flusso specificata. |
<IgnoreUnresolvedVariables> |
Facoltativo | Determina se l'elaborazione si interrompe quando un insieme di proprietà non viene risolto. |
Esempio
Questa sezione fornisce un esempio che utilizza <ReadPropertySet>.
Esempio
Questo esempio utilizza <ReadPropertySet> per ottenere
propertyset.environment.name.request.headers.api-version e
assegnarlo a target_url. Se il valore dell'insieme di proprietà non viene ottenuto,
viene utilizzato 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>Riferimento all'elemento secondario
Questa sezione descrive gli elementi secondari di <ReadPropertySet>.
<Read>
Risolve una variabile del set di proprietà e imposta il risultato in una variabile di flusso.
L'elemento <Read> specifica la variabile dell'insieme di proprietà da risolvere e la variabile di flusso a cui
impostare il valore. Include anche un valore predefinito facoltativo, che viene utilizzato in caso di
un insieme di proprietà non risolto. Puoi includere più elementi <Read> in un'unica norma <ReadPropertySet>.
| Valore predefinito | N/D |
| Obbligatorio? | Facoltativo |
| Tipo | Tipo complesso |
| Elemento principale |
<ReadPropertySet>
|
| Elementi secondari |
<Name><Key><AssignTo><DefaultValue> |
L'elemento <Read> utilizza la seguente sintassi:
Sintassi
<Read> <Name ref="set-ref">property-set-name</Name> <Key ref="key-ref">key-name</Key> <AssignTo>var1</AssignTo> <DefaultValue>default-value</DefaultValue> </Read>
Esempio
Questo esempio utilizza <ReadPropertySet> per ottenere
propertyset.environment.name.request.headers.api-version e
assegnarlo a target_url. Se il valore dell'insieme di proprietà non viene ottenuto,
viene utilizzato 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>La tabella seguente fornisce una descrizione generale degli elementi secondari di
<Read>.
| Elemento secondario | Obbligatorio? | Descrizione |
|---|---|---|
<Name> |
Obbligatorio | Stringa La proprietà impostata per la lettura. Fornisci ref, il valore o entrambi.
Apigee tenta innanzitutto di risolvere
|
<Key> |
Obbligatorio | Stringa La chiave del set di proprietà utilizzato per risolvere la variabile. Fornisci ref, il valore o entrambi.
Apigee tenta innanzitutto di risolvere
|
<AssignTo> |
Obbligatorio | Stringa Specifica la variabile di flusso a cui assegnare la variabile risolta. |
<DefaultValue> |
Facoltativo | Stringa Specifica un valore predefinito da utilizzare quando la variabile non può essere risolta. |
<IgnoreUnresolvedVariables>
Determina se l'elaborazione si interrompe quando un insieme di proprietà non viene risolto. Imposta su
true per ignorare le variabili non risolte e continuare l'elaborazione.
IgnoreUnresolvedVariables non è applicabile quando viene fornito <DefaultValue>.
| Valore predefinito | Falso |
| Obbligatorio? | Facoltativo |
| Tipo | Booleano |
| Elemento principale |
<ReadPropertySet>
|
| Elementi secondari | Nessuno |
Messaggi di errore
Questa sezione descrive i codici di errore e i messaggi di errore restituiti e le variabili di errore impostate da Apigee specifiche per il criterio <ReadPropertySet>.
Queste informazioni sono importanti se stai sviluppando regole di errore per
gestire gli errori. Per scoprire di più, consulta Informazioni
sugli errori relativi alle norme e Gestione
dei guasti.
Errori di runtime
Questi errori possono verificarsi durante l'esecuzione del criterio.
| Codice di errore | Stato HTTP | Causa |
|---|---|---|
steps.readpropertyset.UnresolvedVariable |
500 |
Questo errore si verifica se una variabile specificata nel criterio ReadPropertySet è:
Se |
Errori di deployment
Questi errori possono verificarsi quando implementi un proxy contenente questo criterio.
| Nome dell'errore | Causa |
|---|---|
steps.readpropertyset.EmptyReads |
Il criterio non ha elementi secondari <Read>. |
steps.readpropertyset.FieldUnset |
Questo codice viene restituito quando si verifica una delle seguenti condizioni:
|
Variabili di errore
Queste variabili vengono impostate quando questa policy genera un errore in fase di runtime. Per saperne di più, consulta Cosa devi sapere sugli errori relativi alle norme.
| Variabili | Dove | Esempio |
|---|---|---|
fault.name="FAULT_NAME" |
FAULT_NAME è il nome dell'errore, come elencato nella tabella Errori di runtime riportata sopra. Il nome del guasto è l'ultima parte del codice di guasto. | fault.name Matches "UnresolvedVariable" |
readpropertyset.POLICY_NAME.failed |
POLICY_NAME è il nome specificato dall'utente del criterio che ha generato l'errore. | readpropertyset.RPS-SetResponse.failed = true |
Esempio di risposta di errore
{ "fault": { "faultstring": "ReadPropertySet[RPS-SetResponse]: unable to resolve variable [variable_name]", "detail": { "errorcode": "steps.readpropertyset.UnresolvedVariable" } } }
Regola di errore di esempio
<FaultRule name="ReadPropertySet Faults">
<Step>
<Name>RPS-CustomSetVariableErrorResponse</Name>
<Condition>(fault.name = "SetVariableFailed")</Condition>
</Step>
<Condition>(readpropertyset.failed = true)</Condition>
</FaultRule>
Schemi
Ogni tipo di policy è definito da uno schema XML (.xsd). Per riferimento, gli schemi delle policy
sono disponibili su GitHub.