Relações na API do reator
Os recursos na API do reator são frequentemente relacionados entre si. Este documento fornece uma visão geral de como as relações de recursos são estabelecidas na API e os requisitos de relação de cada tipo de recurso.
Dependendo do tipo de recurso em questão, algumas relações são necessárias. Um relacionamento necessário implica que o recurso pai não pode existir sem o relacionamento. Todas as outras relações são opcionais.
Independentemente de serem obrigatórias ou opcionais, as relações são estabelecidas automaticamente pelo sistema quando os recursos relevantes são criados ou devem ser criadas manualmente. No caso de criar relações manualmente, há dois métodos possíveis dependendo do recurso em questão:
- Criar por carga
- Criar por URL (somente para bibliotecas)
Consulte a seção requisitos de relacionamento para obter uma lista de relacionamentos compatíveis com cada tipo de recurso e os métodos necessários para estabelecer esses relacionamentos, quando aplicável.
Criar uma relação por carga payload
Algumas relações devem ser estabelecidas manualmente ao criar inicialmente um recurso. Para fazer isso, você deve fornecer um objeto relationship
na carga da solicitação ao criar o recurso pai pela primeira vez. Exemplos dessas relações:
- Criação de um elemento de dados com as extensões necessárias
- Criação de um ambiente com o relacionamento de host necessário
Formato da API
POST /properties/{PROPERTY_ID}/{RESOURCE_TYPE}
{PROPERTY_ID}
{RESOURCE_TYPE}
Solicitação
A solicitação a seguir cria um novo rule_component
, estabelecendo relacionamentos com rules
e um 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
, que são específicos a rule_components
. Para obter mais informações sobre tipos de relacionamentos compatíveis com recursos diferentes, consulte a seção sobre requisitos de relacionamento por recurso.data
relationship
deve conter uma propriedade data
, que faz referência a id
e type
do recurso com o qual uma relação está sendo estabelecida. Você pode criar uma relação com vários recursos do mesmo tipo formatando a propriedade data
como uma matriz de objetos, com cada objeto contendo os id
e type
de um recurso aplicável.id
id
deve ser acompanhado por uma propriedade irmã type
, indicando o tipo de recurso em questão.type
id
irmão. Os valores aceitos são data_elements
, rules
, extensions
e environments
.Criar uma relação por URL url
Ao contrário de outros recursos, as bibliotecas estabelecem relações por meio de seus próprios pontos de extremidade dedicados /relationship
. São exemplos:
Formato da API
POST /properties/{PROPERTY_ID}/libraries/{LIBRARY_ID}/relationships/{RESOURCE_TYPE}
{PROPERTY_ID}
{LIBRARY_ID}
{RESOURCE_TYPE}
environment
, data_elements
, extensions
e rules
.Solicitação
A solicitação a seguir usa o ponto de extremidade /relationships/environment
para uma biblioteca para criar uma relação com um 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 type
do recurso do target para o relacionamento. Se você estiver criando uma relação com vários recursos do mesmo tipo (como extensions
e rules
), a propriedade data
deverá ser formatada como uma matriz de objetos, com cada objeto contendo os id
e type
de um recurso aplicável.id
id
deve ser acompanhado por uma propriedade irmã type
, indicando o tipo de recurso em questão.type
id
irmão. Os valores aceitos são data_elements
, rules
, extensions
e environments
.Requisitos de relação por recurso requirements
As tabelas a seguir descrevem as relações disponíveis para cada tipo de recurso, sejam essas relações necessárias ou não, e o método aceito para criar manualmente a relação, onde aplicável.
Eventos de auditoria
property
entity
Builds
data_elements
extensions
rules
environment
library
property
Retornos de chamada
property
Empresas
properties
Elementos de dados
libraries
revisions
notes
property
origin
extension
updated_with_extension
updated_with_extension_package
Ambientes
library
builds
host
property
Extensões
libraries
revisions
notes
property
origin
extension_package
updated_with_extension_package
Hosts
property
Bibliotecas
builds
environment
data_elements
extensions
rules
notes
upstream_library
property
last_build
Notas
resource
Propriedades
company
callbacks
environments
libraries
data_elements
extensions
extensions
Componentes da regra
updated_with_extensions_package
updated_with_extension
extension
notes
origin
property
rules
revisions
Regras
libraries
revisions
notes
property
origin
rule_components
Segredos
property
environment