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"
}
}'
relationshipsextension 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.datarelationship 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.idid deve ser acompanhado por uma propriedade irmã type, indicando o tipo de recurso em questão.typeid 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",
}
}'
dataid 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.idid deve ser acompanhado por uma propriedade irmã type, indicando o tipo de recurso em questão.typeid 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
propertyentityBuilds
data_elementsextensionsrulesenvironmentlibrarypropertyRetornos de chamada
propertyEmpresas
propertiesElementos de dados
librariesrevisionsnotespropertyoriginextensionupdated_with_extensionupdated_with_extension_packageAmbientes
librarybuildshostpropertyExtensões
librariesrevisionsnotespropertyoriginextension_packageupdated_with_extension_packageHosts
propertyBibliotecas
buildsenvironmentdata_elementsextensionsrulesnotesupstream_librarypropertylast_buildNotas
resourcePropriedades
companycallbacksenvironmentslibrariesdata_elementsextensionsextensionsComponentes da regra
updated_with_extensions_packageupdated_with_extensionextensionnotesoriginpropertyrulesrevisionsRegras
librariesrevisionsnotespropertyoriginrule_componentsSegredos
propertyenvironment