Relations dans l’API Reactor
Les ressources de l’API Reactor sont souvent liées. Ce document présente la manière dont les relations entre les ressources sont établies dans l’API et les exigences en matière de relation de chaque type de ressource.
Selon le type de ressource en question, certaines relations sont nécessaires. Une relation requise implique que la ressource parent ne peut pas exister sans la relation. Toutes les autres relations sont facultatives.
Qu’elles soient obligatoires ou facultatives, les relations sont soit automatiquement établies par le système lors de la création des ressources appropriées, soit elles doivent être créées manuellement. Dans le cas de la création manuelle de relations, il existe deux méthodes possibles en fonction de la ressource en question :
- Créer par payload
- Créer par URL (pour les bibliothèques uniquement)
Reportez-vous à la section Exigences de relation pour obtenir la liste des relations compatibles pour chaque type de ressource, ainsi que les méthodes nécessaires pour établir ces relations, le cas échéant.
Création d’une relation par payload payload
Certaines relations doivent être établies manuellement lors de la création initiale d’une ressource. Pour ce faire, vous devez fournir un objet relationship dans le payload de la requête lorsque vous créez la ressource parent pour la première fois. Voici quelques exemples de ces relations :
- Création d’un élément de données avec les extensions requises
- Création d’un environnement avec la relation d’hôte requise
Format d’API
POST /properties/{PROPERTY_ID}/{RESOURCE_TYPE}
{PROPERTY_ID}{RESOURCE_TYPE}Requête
La requête suivante crée un nouveau rule_component, établissant des relations avec les rules et une 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 et rules sont établies, qui sont spécifiques à rule_components. Pour plus d’informations sur les types de relation compatibles pour différentes ressources, consultez la section sur les exigences en matière de relation par ressource.datarelationship doit contenir une propriété data qui fait référence aux propriétés id et type de la ressource avec laquelle une relation est établie. Vous pouvez créer une relation avec plusieurs ressources du même type en formatant la propriété data en tant que tableau d’objets, chaque objet contenant les éléments id et type d’une ressource applicable.idid doit être accompagné d’une propriété type parente, indiquant le type de ressource en question.typeid parent. Les exemples de valeurs comprennent data_elements, rules, extensions et environments.Création d’une relation par URL url
Contrairement aux autres ressources, les bibliothèques établissent des relations par le biais de leurs propres points d’entrée /relationship dédiés. Par exemple :
Format d’API
POST /properties/{PROPERTY_ID}/libraries/{LIBRARY_ID}/relationships/{RESOURCE_TYPE}
{PROPERTY_ID}{LIBRARY_ID}{RESOURCE_TYPE}environment, data_elements, extensions et rules.Requête
La requête suivante utilise le point d’entrée /relationships/environment d’une bibliothèque pour créer une relation avec un environnement.
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 et type de la ressource cible pour la relation. Si vous créez une relation avec plusieurs ressources du même type (telles que extensions et rules), la propriété data doit être formatée sous la forme d’un tableau d’objets, chaque objet contenant les éléments id et type d’une ressource applicable.idid doit être accompagné d’une propriété type parente, indiquant le type de ressource en question.typeid parent. Les exemples de valeurs comprennent data_elements, rules, extensions et environments.Exigences de relation par ressource requirements
Les tableaux suivants décrivent les relations disponibles pour chaque type de ressource, si ces relations sont nécessaires ou non, et la méthode acceptée pour créer manuellement la relation, le cas échéant.
Événements d’audit
propertyentityVersions
data_elementsextensionsrulesenvironmentlibrarypropertyRappels
propertySociétés
propertiesÉléments de données
librariesrevisionsnotespropertyoriginextensionupdated_with_extensionupdated_with_extension_packageEnvironnements
librarybuildshostpropertyExtensions
librariesrevisionsnotespropertyoriginextension_packageupdated_with_extension_packageHôtes
propertyBibliothèques
buildsenvironmentdata_elementsextensionsrulesnotesupstream_librarypropertylast_buildNotes
resourcePropriétés
companycallbacksenvironmentslibrariesdata_elementsextensionsextensionsComposants de règle
updated_with_extensions_packageupdated_with_extensionextensionnotesoriginpropertyrulesrevisionsRègles
librariesrevisionsnotespropertyoriginrule_componentsSecrets
propertyenvironment