Utilizzo dei set di proprietà

Questa pagina si applica a Apigee e Apigee ibridi.

Visualizza la documentazione di Apigee Edge.

Un insieme di proprietà è una raccolta personalizzata di coppie chiave/valore in cui vengono archiviati i dati. I proxy API possono recuperare questi dati durante l'esecuzione.

Perché utilizzare gli insiemi di proprietà?

In genere, si utilizzano gli insiemi di proprietà per archiviare i dati non in scadenza che non devono essere hardcoded nella logica del proxy API. Puoi accedere ai dati dei set di proprietà in qualsiasi punto di un proxy in cui possono accedere alle variabili di flusso.

Un caso d'uso comune per i set di proprietà è fornire valori associati a un ambiente o a un altro. Ad esempio, puoi creare un insieme di proprietà basato sull'ambiente con valori di configurazione specifici per i proxy in esecuzione nell'ambiente di test e un altro per l'ambiente di produzione.

Ad esempio:

  • L'insieme di proprietà prod-env.properties contiene la proprietà log-level=error
  • L'insieme di proprietà test-env.properties contiene la proprietà log-level=debug

Allo stesso modo, potresti archiviare informazioni di routing specifiche dell'ambiente:

  • L'insieme di proprietà test-env.properties contiene la proprietà db-url=mydomain.test.datasource.com
  • L'insieme di proprietà prod-env.properties contiene la proprietà db-url=mydomain.prod.datasource.com

Ambiti del set di proprietà

Quando crei un insieme di proprietà, puoi specificarne l'ambito in base a una revisione o a un ambiente del proxy API. Non puoi definire l'ambito di una proprietà impostata su un'organizzazione.

La tabella seguente spiega il comportamento e l'amministrazione degli insiemi di proprietà con proxy API e ambito dell'organizzazione:

Ambito Comportamento di runtime Amministrazione
proxy API Le proprietà sono disponibili solo per la revisione del proxy API che contiene la risorsa set di proprietà. Nessun altro proxy API o revisione dello stesso proxy può accedere all'elemento un particolare insieme di proprietà. Gli amministratori possono utilizzare l'API Apigee /resourcefiles o l'interfaccia utente per creare e modificare i set di proprietà. Il salvataggio del proxy API nell'interfaccia utente creerà una nuova revisione e il set di proprietà modificato verrà associato solo a quella revisione.
Ambiente Le proprietà sono disponibili per tutte le revisioni di tutti i proxy API all'interno di quell'ambiente. I proxy API in altri ambienti non possono accedere a questo insieme di proprietà. Gli amministratori devono utilizzare l'API Apigee /resourcefiles per creare, visualizzare, aggiornare o eliminare insiemi di proprietà basati sull'ambiente. Questi set di proprietà non vengono visualizzati e non possono essere modificati nell'interfaccia utente di Apigee.

Limiti impostati per le proprietà

Apigee impone dei limiti agli insiemi di proprietà, come descritto in Limiti. Inoltre, i file degli insiemi di proprietà devono utilizzare lo stesso come proprietà Java , con una sola eccezione: non puoi utilizzare parentesi graffe {} nei file degli insiemi di proprietà.

Creare file di insiemi di proprietà

In genere, i valori degli insiemi di proprietà vengono archiviati come coppie nome/valore in un file. I file del set di proprietà vengono file di risorse di tipo properties.

I file di set di proprietà supportano la stessa sintassi dei file di proprietà Java; ad esempio, possono contenere valori Unicode e utilizzare i caratteri # o ! come indicatori di commenti. Tieni presente questa eccezione: non puoi utilizzare le parentesi graffe {} nei file dei set di proprietà.

Devi aggiungere il suffisso .properties al nome di un file della proprietà. Ad esempio: myconfig.my_key.properties è consentito, ma myconfig.my_key non è consentito.

La struttura della specifica di un insieme di proprietà è: property_set_name.property_name.properties Il nome dell'insieme di proprietà e il nome della proprietà non possono contenere punti. Ad esempio: myconfig.my_key.properties è consentito, ma myconfig.my.key.properties e my.config.my_key.properties non sono consentiti.

L'esempio seguente mostra un semplice file di set di proprietà che definisce diverse proprietà:

# myProps.properties file
# General properties
foo=bar
baz=biff

# Messages/notes/warnings
message=This is a basic message.
note_message=This is an important message.
error_message=This is an error message.

# Keys
publickey=abc123
privatekey=splitwithsoundman

Dopo aver creato un file di set di proprietà, devi caricarlo su Apigee utilizzando UI o API.

Gestire gli insiemi di proprietà tramite l'interfaccia utente

Gestisci i set di proprietà con ambito a una revisione del proxy API utilizzando l'interfaccia utente nello stesso modo in cui gestisci altre risorse. Per saperne di più, vedi Gestire le risorse utilizzando l'interfaccia utente.

Gestire gli insiemi di proprietà utilizzando l'API

Gestisci gli insiemi di proprietà con ambito in una revisione o in un ambiente del proxy API utilizzando l'API, come descritto nelle sezioni seguenti.

Creare set di proprietà utilizzando l'API

Le sezioni seguenti descrivono come creare insiemi di proprietà con ambito limitato a una revisione o a un ambiente proxy API utilizzando l'API.

Creare set di proprietà con ambito a una revisione del proxy API utilizzando l'API

Per creare un set di proprietà che abbia come ambito una revisione del proxy API utilizzando l'API:

  1. Crea il file del set di proprietà.
  2. Aggiungi il file del set di proprietà a un pacchetto di configurazione del proxy API.
  3. Carica il bundle tramite Crea proxy API oppure API di aggiornamento della revisione del proxy API.

Creare set di proprietà con ambito in un ambiente utilizzando l'API

Per aggiungere un insieme di proprietà che abbia come ambito un ambiente utilizzando l'API, crea il file del set di proprietà e poi caricalo in un ambiente della organizzazione inviando una richiesta POST alla seguente risorsa: https://apigee.googleapis.com/v1/organizations/{org}/environments/{env}/resourcefiles

Includi nella richiesta le seguenti informazioni:

  • Imposta il parametro di query name sul nome dell'insieme di proprietà
  • Imposta il parametro di query type su properties
  • Trasmetti i contenuti del file del set di proprietà come application/octet-stream o multipart/form-data

L'esempio seguente importa un insieme di proprietà denominato MyPropSet dal file /Users/myhome/myprops.properties:

curl -X POST "https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles?name=MyPropSet&type=properties"
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-type: multipart/form-data" \
  -F file=@/Users/myhome/myprops.properties
  

$TOKEN sia impostato sul tuo token di accesso OAuth 2.0, come descritto in Ottenere un token di accesso OAuth 2.0. Per informazioni sulle opzioni curl utilizzate in questo esempio, vedi Con curl.

Di seguito è riportato un esempio di risposta.

{
  "name": "MyPropSet",
  "type": "properties"
}

Per ulteriori informazioni, consulta l'API Create resource file.

Visualizzare i set di proprietà utilizzando l'API

Le sezioni seguenti descrivono come visualizzare insiemi di proprietà con ambito in un ambiente utilizzando l'API.

Visualizza tutti i set di proprietà con ambito a un ambiente utilizzando l'API

Per visualizzare tutti i set di proprietà con ambito a un ambiente utilizzando l'API, invia una richiesta GET alla seguente risorsa: https://apigee.googleapis.com/v1/organizations/{org}/environments/{env}/resourcefiles/properties

L'esempio seguente elenca tutti i set di proprietà nell'ambiente di test:

curl -X GET "https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles/properties" \
  -H "Authorization: Bearer $TOKEN"
  

$TOKEN sia impostato sul tuo token di accesso OAuth 2.0, come descritto in Ottenere un token di accesso OAuth 2.0. Per informazioni sulle opzioni curl utilizzate in questo esempio, vedi Con curl.

Di seguito è riportato un esempio di risposta.

{
  "resourceFile": [
    {
      "name": "MyPropSet",
      "type": "properties"
    }
  ]
}

Per ulteriori informazioni, vedi API dei file di risorse dell'ambiente dell'elenco.

Visualizzare i contenuti di un set di proprietà con ambito a un ambiente utilizzando l'API

Per visualizzare i contenuti di un set di proprietà con ambito a un ambiente utilizzando l'API, invia una richiesta GET alla seguente risorsa: https://apigee.googleapis.com/v1/organizations/{org}/environments/{env}/resourcefiles/properties/name

L'esempio seguente mostra i contenuti della proprietà MyPropSet impostata nell'ambiente di test:

curl -X GET "https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles/properties/MyPropSet" \
  -H "Authorization: Bearer $TOKEN"
  

$TOKEN sia impostato sul token di accesso OAuth 2.0, come descritto in Ottenere un token di accesso OAuth 2.0. Per informazioni sulle opzioni curl utilizzate in questo esempio, consulta Utilizzare curl.

Di seguito viene fornito un esempio della risposta.

# myProps.properties file
# General properties
foo=bar
baz=biff

# Messages/notes/warnings
message=This is a basic message.
note_message=This is an important message.
error_message=This is an error message.

# Keys
publickey=abc123
privatekey=splitwithsoundman

Per ulteriori informazioni, consulta l'API List environment resource files.

Aggiornare gli insiemi di proprietà utilizzando l'API

Le seguenti sezioni descrivono come aggiornare i set di proprietà nell'ambito di una revisione del proxy API o di un ambiente utilizzando l'API.

Aggiorna set di proprietà con ambito a una revisione del proxy API utilizzando l'API

Per aggiornare un insieme di proprietà con ambito limitato a una revisione del proxy API utilizzando l'API:

  1. Aggiorna il file del set di proprietà.
  2. Scarica il bundle di configurazione del proxy API utilizzando Ottieni l'API di revisione del proxy API, con le seguenti opzioni:
    • Imposta il parametro di query format su bundle
    • Imposta l'intestazione Accept su application/zip
  3. Aggiungi il file del set di proprietà al pacchetto di configurazione del proxy API.
  4. Carica il bundle di configurazione del proxy API utilizzando l'API Update API proxy review.

Aggiornare insiemi di proprietà con ambito in un ambiente utilizzando l'API

Per aggiornare un insieme di proprietà che ha come ambito un ambiente utilizzando l'API, aggiorna il file dell'insieme di proprietà e caricalo in un ambiente della tua organizzazione inviando una richiesta PUT alla seguente risorsa: https://apigee.googleapis.com/v1/organizations/{org}/environments/{env}/resourcefiles/{type}/{name}

Includi le seguenti informazioni nella richiesta:

  • Imposta {type} su properties
  • Imposta {name} sul nome dell'insieme di proprietà da aggiornare
  • Passa i contenuti del file del set di proprietà come application/octet-stream o multipart/form-data

L'esempio seguente aggiorna il set di proprietà MyPropSet utilizzando i contenuti del file /Users/myhome/myprops-revised.properties:

curl -X PUT "https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles/properties/MyPropSet"
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-type: multipart/form-data" \
  -F file=@/Users/myhome/myprops-revised.properties
  

$TOKEN sia impostato sul tuo token di accesso OAuth 2.0, come descritto in Ottenere un token di accesso OAuth 2.0. Per informazioni sulle opzioni curl utilizzate in questo esempio, consulta Utilizzare curl.

Di seguito è riportato un esempio di risposta.

{
  "name": "MyPropSet",
  "type": "properties"
}

Per ulteriori informazioni, consulta Aggiorna l'API file della risorsa.

Eliminare i set di proprietà utilizzando l'API

Le seguenti sezioni descrivono come eliminare insiemi di proprietà con ambito limitato a una revisione o a un ambiente del proxy API utilizzando l'API.

Elimina i set di proprietà con ambito a una revisione del proxy API utilizzando l'API

Per eliminare un insieme di proprietà con ambito limitato a una revisione del proxy API utilizzando l'API:

  1. Scarica il pacchetto di configurazione del proxy API utilizzando l'API Get API proxy revision con le seguenti opzioni:
    • Imposta il parametro di query format su bundle
    • Imposta l'intestazione Accept su application/zip
  2. Elimina il file del set di proprietà dal pacchetto di configurazione del proxy API.
  3. Carica il pacchetto di configurazione del proxy API utilizzando l'API Aggiorna revisione proxy API.

Elimina i set di proprietà con ambito a un ambiente utilizzando l'API

Per eliminare un set di proprietà con ambito a un ambiente utilizzando l'API, invia una richiesta DELETE alla seguente risorsa: https://apigee.googleapis.com/v1/organizations/{org}/environments/{env}/resourcefiles/{type}/{name}

Specifica le seguenti informazioni nella richiesta:

  • Imposta {type} su properties
  • Imposta {name} sul nome del set di proprietà che vuoi eliminare

L'esempio seguente elimina il set di proprietà MyPropSet:

curl -X DELETE https://apigee.googleapis.com/v1/organizations/my-organization/environments/test/resourcefiles/properties/MyPropSet \
  -H "Authorization: Bearer $TOKEN"
  

$TOKEN sia impostato sul token di accesso OAuth 2.0, come descritto in Ottenere un token di accesso OAuth 2.0. Per informazioni sulle opzioni curl utilizzate in questo esempio, vedi Con curl.

Di seguito è riportato un esempio di risposta.

{
  "name": "MyPropSet",
  "type": "properties"
}

Per ulteriori informazioni, consulta l'API Delete resource file.

Accedere ai valori degli insiemi di proprietà

Accedi ai valori del set di proprietà ovunque in un proxy API in cui possono accedere alle variabili di flusso: in criteri, flussi, codice JavaScript e così via.

Per accedere ai valori in un insieme di proprietà, utilizza la seguente sintassi:

propertyset.[property_set_name].[property_name]

Dove:

  • property_set_name è il nome file che hai definito (se hai utilizzato l'interfaccia utente) oppure del parametro di query name (se hai utilizzato l'API).
  • property_name è il nome della proprietà. Ad esempio, se il set di proprietà contiene foo=bar, foo è il nome della proprietà e bar è il valore.

Ad esempio, in un criterio JavaScript, utilizza il metodo getVariable() per ottenere una da un insieme di proprietà:

context.getVariable('propertyset.property_set_name.property_name);

L'esempio seguente recupera il valore della proprietà foo nel set di proprietà chiamato "MyPropSet":

context.getVariable('propertyset.MyPropSet.foo);

Puoi anche utilizzare il regolamento ExtractVariables per ottenere il valore di una proprietà da un insieme di proprietà e assegnarlo a un'altra variabile, come mostrato nell'esempio seguente:

<ExtractVariables name="ExtractVariables-1">
   <DisplayName>Extract a portion of the url path</DisplayName>
   <Source>request</Source>
   <Variable name="propertyset.MyPropSet.foo">
      <Pattern>{myVar}</Pattern>
   </Variable>
   <VariablePrefix>foobar</VariablePrefix>
   <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</ExtractVariables>

In questo esempio, il criterio legge la variabile dall'attributo name e assegna il valore alla variabile nell'elemento Pattern.

Assegna dinamicamente il valore di una chiave dell'insieme di proprietà utilizzando il criterio Assegna messaggio

Puoi utilizzare il criterio Assegna messaggio per assegnare il valore della chiave del set di proprietà a una variabile di flusso in modo dinamico. Per maggiori dettagli, consulta la descrizione di PropertySetRef nel riferimento ai criteri Assegna messaggio.

Per gli utenti ibridi di Apigee

Se utilizzi Apigee hybrid, tieni presente quanto segue:

  1. Il piano di gestione ibrido convalida l'insieme di proprietà. Se sono valide, le proprietà vengono memorizzate nel piano di gestione.
  2. Il sincronizzatore recupera i dati del set di proprietà e li archivia localmente nel runtime aereo.
  3. Il processore di messaggi carica l'insieme di proprietà scaricato e lo rende disponibile per l'esecuzione degli oggetti proxy.