Relazioni nell’API di Reactor
Le risorse nell’API di Reactor sono spesso correlate tra loro. Questo documento fornisce una panoramica dell’impostazione delle relazioni tra le risorse nell’API e dei requisiti di relazione per ciascun tipo di risorsa.
A seconda del tipo di risorsa, alcune relazioni sono obbligatorie. Una relazione obbligatoria implica che la risorsa padre non può esistere senza la relazione. Tutte le altre relazioni sono facoltative.
Sia le relazioni obbligatorie che quelle facoltative vengono stabilite automaticamente dal sistema quando vengono create le relative risorse, oppure devono essere create manualmente. Nel caso di creazione manuale, esistono due metodi possibili a seconda della risorsa in questione:
- Creare tramite payload
- Creare tramite URL (solo per le librerie)
Per un elenco delle relazioni compatibili per ciascun tipo di risorsa e per i metodi necessari per stabilire le relazioni applicabili, consulta la sezione sui requisiti delle relazioni.
Creare una relazione tramite payload payload
Alcune relazioni devono essere stabilite manualmente al momento della creazione iniziale di una risorsa. A questo scopo, devi fornire un oggetto relationship
nel payload della richiesta al momento della creazione della risorsa principale. Esempi di queste relazioni includono:
- Creazione di un elemento dati con le estensioni richieste
- Creazione di un ambiente con la relazione host richiesta
Formato API
POST /properties/{PROPERTY_ID}/{RESOURCE_TYPE}
{PROPERTY_ID}
{RESOURCE_TYPE}
Richiesta
La seguente richiesta crea un nuovo rule_component
, stabilendo relazioni con rules
e una extension
.
curl -X POST \
https://reactor.adobe.io/properties/PRf606dbddfbdc44f580fc6f342b5ff9be/rule_components \
-H 'Authorization: Bearer [TOKEN]' \
-H 'x-api-key: [KEY]' \
-H 'x-gw-ims-org-id: [ORG_ID]' \
-H 'Accept: application/vnd.api+json;revision=1' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"attributes": {
"delegate_descriptor_id": "kessel-test::events::click",
"name": "My Example Click Event",
"settings": "{\"elementSelector\":\".accordion\",\"bubbleFireIfChildFired\":true}"
},
"relationships": {
"extension": {
"data": {
"id": "EXa2865f4d14204fa094f247406424371b",
"type": "extensions"
}
},
"rules": {
"data": [
{
"id": "RLd53598e3f1884e63bbc8e9c95e463dcf",
"type": "rules"
}
]
}
},
"type": "rule_components"
}
}'
relationships
extension
e rules
, che sono specifiche per rule_components
. Per ulteriori informazioni sui tipi di relazione compatibili per risorse diverse, consulta la sezione sui requisiti delle relazioni per risorsa.data
relationship
deve contenere una proprietà data
che fa riferimento all’id
e al type
della risorsa con cui viene stabilita una relazione. Per creare una relazione con più risorse dello stesso tipo, puoi formattare la proprietà data
come array di oggetti, con ogni oggetto contenente l’id
e il type
di una risorsa applicabile.id
id
deve essere associata una proprietà type
di pari livello che indica il tipo di risorsa in questione.type
id
di pari livello. I valori accettati sono data_elements
, rules
, extensions
e environments
.Creare una relazione tramite URL url
A differenza di altre risorse, le librerie stabiliscono relazioni attraverso i propri endpoint /relationship
dedicati. Gli esempi includono:
Formato API
POST /properties/{PROPERTY_ID}/libraries/{LIBRARY_ID}/relationships/{RESOURCE_TYPE}
{PROPERTY_ID}
{LIBRARY_ID}
{RESOURCE_TYPE}
environment
, data_elements
, extensions
e rules
.Richiesta
La seguente richiesta utilizza l’endpoint /relationships/environment
di una libreria per creare una relazione con un ambiente.
curl -X POST \
https://reactor.adobe.io/properties/PRf606dbddfbdc44f580fc6f342b5ff9be/libraries/LB10c1fd171cd347f19fcb8659a8d679ef/relationships/environment \
-H 'Authorization: Bearer [TOKEN]' \
-H 'x-api-key: [KEY]' \
-H 'x-gw-ims-org-id: [ORG_ID]' \
-H 'Accept: application/vnd.api+json;revision=1' \
-H 'Content-Type: application/vnd.api+json' \
-d '{
"data": {
"id": "ENf395a477d2b24ad696d65b901055b9dc",
"type": "environments",
}
}'
data
id
e al type
della risorsa di destinazione della relazione. Se vuoi creare una relazione con più risorse dello stesso tipo (ad esempio extensions
e rules
), la proprietà data
deve essere formattata come un array di oggetti, ognuno dei quali deve contenere i valori id
e type
della risorsa applicabile.id
id
deve essere associata una proprietà type
di pari livello che indica il tipo di risorsa in questione.type
id
di pari livello. I valori accettati sono data_elements
, rules
, extensions
e environments
.Requisiti delle relazioni per risorsa requirements
Le tabelle seguenti descrivono le relazioni disponibili per ogni tipo di risorsa, obbligatorie o meno, e il metodo accettato per creare manualmente la relazione applicabile.
Eventi di audit
property
entity
Build
data_elements
extensions
rules
environment
library
property
Callback
property
Aziende
properties
Elementi dati
libraries
revisions
notes
property
origin
extension
updated_with_extension
updated_with_extension_package
Ambienti
library
builds
host
property
Estensioni
libraries
revisions
notes
property
origin
extension_package
updated_with_extension_package
Host
property
Librerie
builds
environment
data_elements
extensions
rules
notes
upstream_library
property
last_build
Note
resource
Proprietà
company
callbacks
environments
libraries
data_elements
extensions
extensions
Componenti della regola
updated_with_extensions_package
updated_with_extension
extension
notes
origin
property
rules
revisions
Regole
libraries
revisions
notes
property
origin
rule_components
Segreti
property
environment