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"
}
}'
relationshipsextension 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.datarelationship 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.idid deve essere associata una proprietà type di pari livello che indica il tipo di risorsa in questione.typeid 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",
}
}'
dataid 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.idid deve essere associata una proprietà type di pari livello che indica il tipo di risorsa in questione.typeid 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
propertyentityBuild
data_elementsextensionsrulesenvironmentlibrarypropertyCallback
propertyAziende
propertiesElementi dati
librariesrevisionsnotespropertyoriginextensionupdated_with_extensionupdated_with_extension_packageAmbienti
librarybuildshostpropertyEstensioni
librariesrevisionsnotespropertyoriginextension_packageupdated_with_extension_packageHost
propertyLibrerie
buildsenvironmentdata_elementsextensionsrulesnotesupstream_librarypropertylast_buildNote
resourceProprietà
companycallbacksenvironmentslibrariesdata_elementsextensionsextensionsComponenti della regola
updated_with_extensions_packageupdated_with_extensionextensionnotesoriginpropertyrulesrevisionsRegole
librariesrevisionsnotespropertyoriginrule_componentsSegreti
propertyenvironment