Beziehungen in der Reactor-API
Ressourcen in der Reactor-API stehen häufig in Beziehung zueinander. Dieses Dokument gibt einen Überblick darüber, wie Ressourcenbeziehungen in der API hergestellt werden und welche Anforderungen die einzelnen Ressourcentypen an die Beziehungen stellen.
Je nach Art der betreffenden Ressource sind einige Beziehungen erforderlich. Eine erforderliche Beziehung impliziert, dass die übergeordnete Ressource nicht ohne die Beziehung existieren kann. Alle anderen Beziehungen sind optional.
Unabhängig davon, ob sie erforderlich oder optional sind, werden Beziehungen entweder automatisch vom System erstellt, wenn relevante Ressourcen angelegt werden, oder sie müssen manuell erstellt werden. Beim manuellen Erstellen von Beziehungen gibt es je nach Ressource zwei mögliche Methoden:
- Erstellen nach Payload
- Erstellen nach URL (nur für Bibliotheken)
Eine Liste der kompatiblen Beziehungen für jeden Ressourcentyp und gegebenenfalls die erforderlichen Methoden zur Herstellung dieser Beziehungen finden Sie im Abschnitt Beziehungsanforderungen.
Erstellen einer Beziehung nach Payload payload
Einige Beziehungen müssen beim erstmaligen Erstellen einer Ressource manuell eingerichtet werden. Dazu müssen Sie beim ersten Erstellen der übergeordneten Ressource ein relationship
-Objekt in der Anfrage-Payload angeben. Beispiele für diese Beziehungen sind:
- Erstellen eines Datenelements mit den erforderlichen Erweiterungen
- Erstellen einer Umgebung mit der erforderlichen Host-Beziehung
API-Format
POST /properties/{PROPERTY_ID}/{RESOURCE_TYPE}
{PROPERTY_ID}
{RESOURCE_TYPE}
Anfrage
Die folgende Anfrage erstellt eine neue rule_component
, die Beziehungen zu rules
und einer extension
herstellt.
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
- und rules
-Beziehungen hergestellt, die speziell für rule_components
gelten. Weitere Informationen zu kompatiblen Beziehungstypen für verschiedene Ressourcen finden Sie im Abschnitt zu Beziehungsanforderungen nach Ressource.data
relationship
-Objekt bereitgestellt wird, muss eine data
-Eigenschaft enthalten, die auf die id
- und type
-Eigenschaft der Ressource verweist, mit der eine Beziehung hergestellt wird. Sie können eine Beziehung mit mehreren Ressourcen desselben Typs erstellen, indem Sie die data
-Eigenschaft als Array von Objekten formatieren, wobei jedes Objekt id
und type
einer entsprechenden Ressource enthält.id
id
muss eine gleichrangige type
-Eigenschaft hinzugefügt werden, die den Typ der betreffenden Ressource angibt.type
id
-Feld referenziert wird. Akzeptierte Werte umfassen data_elements
, rules
, extensions
und environments
.Erstellen einer Beziehung nach URL url
Im Gegensatz zu anderen Ressourcen erstellen Bibliotheken Beziehungen über ihre eigenen dedizierten /relationship
-Endpunkte. Zu den Beispielen gehören:
API-Format
POST /properties/{PROPERTY_ID}/libraries/{LIBRARY_ID}/relationships/{RESOURCE_TYPE}
{PROPERTY_ID}
{LIBRARY_ID}
{RESOURCE_TYPE}
environment
, data_elements
, extensions
und rules
.Anfrage
Die folgende Anfrage verwendet den Endpunkt /relationships/environment
für eine Bibliothek, um eine Beziehung zu einer Umgebung zu erstellen.
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
und type
der Zielressource für die Beziehung referenziert. Wenn Sie eine Beziehung mit mehreren Ressourcen desselben Typs erstellen (z. B. extensions
und rules
), muss die data
-Eigenschaft als Array von Objekten formatiert sein, wobei jedes Objekt id
und type
einer entsprechenden Ressource enthält.id
id
muss eine gleichrangige type
-Eigenschaft hinzugefügt werden, die den Typ der betreffenden Ressource angibt.type
id
-Feld referenziert wird. Akzeptierte Werte umfassen data_elements
, rules
, extensions
und environments
.Beziehungsanforderungen nach Ressource requirements
In den folgenden Tabellen werden die verfügbaren Beziehungen für jeden Ressourcentyp beschrieben, unabhängig davon, ob diese Beziehungen erforderlich sind oder nicht, und die akzeptierte Methode zum manuellen Erstellen der Beziehung, sofern zutreffend.
Audit-Ereignisse
property
entity
Builds
data_elements
extensions
rules
environment
library
property
Callbacks
property
Firmen
properties
Datenelemente
libraries
revisions
notes
property
origin
extension
updated_with_extension
updated_with_extension_package
Umgebungen
library
builds
host
property
Erweiterungen
libraries
revisions
notes
property
origin
extension_package
updated_with_extension_package
Hosts
property
Bibliotheken
builds
environment
data_elements
extensions
rules
notes
upstream_library
property
last_build
Anmerkungen
resource
Eigenschaften
company
callbacks
environments
libraries
data_elements
extensions
extensions
Regelkomponenten
updated_with_extensions_package
updated_with_extension
extension
notes
origin
property
rules
revisions
Regeln
libraries
revisions
notes
property
origin
rule_components
Geheime Daten
property
environment