Relaciones en la API de Reactor

Los recursos de la API de Reactor suelen estar relacionados entre sí. Este documento proporciona una descripción general de cómo se establecen las relaciones de recursos en la API y los requisitos de relación de cada tipo de recurso.

Según el tipo de recurso en cuestión, se requieren algunas relaciones. Una relación necesaria implica que el recurso principal no puede existir sin la relación. Todas las demás relaciones son opcionales.

Independientemente de si son necesarias o opcionales, el sistema establece automáticamente las relaciones cuando se crean los recursos relevantes o deben crearse manualmente. En el caso de la creación manual de relaciones, hay dos métodos posibles en función del recurso en cuestión:

Consulte la sección sobre requisitos de relación para obtener una lista de las relaciones compatibles con cada tipo de recurso y los métodos necesarios para establecer esas relaciones cuando corresponda.

Crear una relación por carga útil

Algunas relaciones deben establecerse manualmente al crear inicialmente un recurso. Para ello, debe proporcionar un objeto relationship en la carga útil de la solicitud cuando cree el recurso principal por primera vez. Algunos ejemplos de estas relaciones son:

Formato de API

POST /properties/{PROPERTY_ID}/{RESOURCE_TYPE}
Parámetro Descripción
{PROPERTY_ID} ID de la propiedad a la que pertenece el recurso.
{RESOURCE_TYPE} Tipo de recurso que se va a crear.

Solicitud

La siguiente solicitud crea un nuevo rule_component, estableciendo relaciones con rules y un 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"
        }
      }'
Propiedad Descripción
relationships Un objeto que debe proporcionarse al crear relaciones mediante carga útil. Cada clave de este objeto representa un tipo de relación específico. En el ejemplo anterior, se establecen las relaciones extension y rules, que son específicas de rule_components. Para obtener más información sobre los tipos de relación compatibles con distintos recursos, consulte la sección sobre requisitos de relación por recurso.
data Cada tipo de relación proporcionado en el objeto relationship debe contener una propiedad data, que hace referencia a id y type del recurso con el que se está estableciendo una relación. Puede crear una relación con varios recursos del mismo tipo dando formato a la propiedad data como una matriz de objetos, cada uno de los cuales contiene id y type de un recurso aplicable.
id ID exclusivo de un recurso. Cada id debe ir acompañado de una propiedad type del mismo nivel, que indique el tipo de recurso en cuestión.
type El tipo de recurso al que hace referencia un campo id del mismo nivel. Los valores aceptados incluyen data_elements, rules, extensions y environments.

Crear una relación por dirección URL

A diferencia de otros recursos, las bibliotecas establecen relaciones a través de sus propios /relationship extremos dedicados. Algunos ejemplos son:

Formato de API

POST /properties/{PROPERTY_ID}/libraries/{LIBRARY_ID}/relationships/{RESOURCE_TYPE}
Parámetro Descripción
{PROPERTY_ID} ID de la propiedad a la que pertenece la biblioteca.
{LIBRARY_ID} El ID de la biblioteca para la que desea crear una relación.
{RESOURCE_TYPE} Tipo de recurso al que se dirige la relación. Los valores disponibles incluyen environment, data_elements, extensions y rules.

Solicitud

La siguiente solicitud utiliza el extremo /relationships/environment de una biblioteca para crear una relación con un entorno.

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",
        }
      }'
Propiedad Descripción
data Un objeto que hace referencia a id y type del recurso de destino para la relación. Si está creando una relación con varios recursos del mismo tipo (como extensions y rules), la propiedad data debe tener el formato de una matriz de objetos, cada uno de los cuales contenga las propiedades id y type de un recurso aplicable.
id ID exclusivo de un recurso. Cada id debe ir acompañado de una propiedad type del mismo nivel, que indique el tipo de recurso en cuestión.
type El tipo de recurso al que hace referencia un campo id del mismo nivel. Los valores aceptados incluyen data_elements, rules, extensions y environments.

Necesidades de relación por recurso

En las tablas siguientes se describen las relaciones disponibles para cada tipo de recurso, independientemente de si se requieren o no esas relaciones, y el método aceptado para crear manualmente la relación cuando corresponda.

NOTA

Si una relación no aparece como creada por carga útil o URL, el sistema la asigna automáticamente.

Eventos de auditoría

Relación Requerido Crear por carga útil Crear por dirección URL
property
entity

Versiones

Relación Requerido Crear por carga útil Crear por dirección URL
data_elements
extensions
rules
environment
library
property

Llamadas

Relación Requerido Crear por carga útil Crear por dirección URL
property

Compañías

Relación Requerido Crear por carga útil Crear por dirección URL
properties

Elementos de datos

Relación Requerido Crear por carga útil Crear por dirección URL
libraries
revisions
notes
property
origin
extension
updated_with_extension
updated_with_extension_package

Entornos

Relación Requerido Crear por carga útil Crear por dirección URL
library
builds
host
property

Extensiones

Relación Requerido Crear por carga útil Crear por dirección URL
libraries
revisions
notes
property
origin
extension_package
updated_with_extension_package

Hosts

Relación Requerido Crear por carga útil Crear por dirección URL
property

Bibliotecas

Relación Requerido Crear por carga útil Crear por dirección URL
builds
environment
data_elements
extensions
rules
notes
upstream_library
property
last_build

Notas

Relación Requerido Crear por carga útil Crear por dirección URL
resource

Propiedades

Relación Requerido Crear por carga útil Crear por dirección URL
company
callbacks
environments
libraries
data_elements
extensions
extensions

Regla componentes

Relación Requerido Crear por carga útil Crear por dirección URL
updated_with_extensions_package
updated_with_extension
extension
notes
origin
property
rules
revisions

Reglas

Relación Requerido Crear por carga útil Crear por dirección URL
libraries
revisions
notes
property
origin
rule_components

En esta página