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"
}
}'
relationships
extension
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.data
relationship
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.id
id
doit être accompagné d’une propriété type
parente, indiquant le type de ressource en question.type
id
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",
}
}'
data
id
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.id
id
doit être accompagné d’une propriété type
parente, indiquant le type de ressource en question.type
id
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
property
entity
Versions
data_elements
extensions
rules
environment
library
property
Rappels
property
Sociétés
properties
Éléments de données
libraries
revisions
notes
property
origin
extension
updated_with_extension
updated_with_extension_package
Environnements
library
builds
host
property
Extensions
libraries
revisions
notes
property
origin
extension_package
updated_with_extension_package
Hôtes
property
Bibliothèques
builds
environment
data_elements
extensions
rules
notes
upstream_library
property
last_build
Notes
resource
Propriétés
company
callbacks
environments
libraries
data_elements
extensions
extensions
Composants de règle
updated_with_extensions_package
updated_with_extension
extension
notes
origin
property
rules
revisions
Règles
libraries
revisions
notes
property
origin
rule_components
Secrets
property
environment