Criar um esquema usando a API Schema Registry
O Schema Registry é usado para acessar o Schema Library no Adobe Experience Platform. O Schema Library contém recursos disponibilizados a você pelo Adobe, parceiros Experience Platform e fornecedores cujos aplicativos você usa. O registro fornece uma interface de usuário e a API RESTful a partir da qual todos os recursos de biblioteca disponíveis podem ser acessados.
Este tutorial usa a API Schema Registry para orientá-lo pelas etapas de composição de um esquema usando uma classe padrão. Se você preferir usar a interface de usuário no Experience Platform, o Tutorial do Editor de Esquemas fornece instruções passo a passo para executar ações semelhantes no editor de esquemas.
Introdução
Este manual necessita de uma compreensão funcional dos seguintes componentes da Adobe Experience Platform:
- Experience Data Model (XDM) System: a estrutura padronizada pela qual o Experience Platform organiza os dados de experiência do cliente.
- Noções básicas sobre a composição de esquema: saiba mais sobre os blocos de construção básicos de esquemas XDM, incluindo princípios-chave e práticas recomendadas na composição de esquema.
- Real-Time Customer Profile: Fornece um perfil de consumidor unificado em tempo real com base em dados agregados de várias fontes.
- Sandboxes: Experience Platform fornece sandboxes virtuais que particionam uma única instância do Platform em ambientes virtuais separados para ajudar a desenvolver aplicativos de experiência digital.
Antes de iniciar este tutorial, consulte o guia do desenvolvedor para obter informações importantes que você precisa saber para fazer chamadas para a API Schema Registry com êxito. Isso inclui o {TENANT_ID}
, o conceito de "contêineres" e os cabeçalhos necessários para fazer solicitações (com atenção especial ao cabeçalho Accept
e seus valores possíveis).
Este tutorial aborda as etapas de composição de um esquema de Membros de fidelidade que descreve dados relacionados aos membros de um programa de fidelidade de varejo. Antes de começar, talvez você queira visualizar o esquema completo de Membros de Fidelidade no apêndice.
Compor um esquema com uma classe padrão
Um esquema pode ser considerado como o blueprint dos dados que você deseja assimilar em Experience Platform. Cada esquema é composto por uma classe e zero ou mais grupos de campos de esquema. Em outras palavras, não é necessário adicionar um grupo de campos para definir um esquema, mas, na maioria dos casos, pelo menos um grupo de campos é usado.
Atribuir uma classe
O processo de composição de esquema começa com a seleção de uma classe. A classe define os principais aspectos comportamentais dos dados (registro versus série temporal), bem como os campos mínimos necessários para descrever os dados que serão assimilados.
O esquema que você está fazendo neste tutorial usa a classe XDM Individual Profile. XDM Individual Profile é uma classe padrão fornecida pelo Adobe para definir o comportamento do registro. Mais informações sobre comportamento podem ser encontradas em noções básicas da composição de esquema.
Para atribuir uma classe, é feita uma chamada à API para criar (POST) um novo esquema no container do locatário. Essa chamada inclui a classe que o esquema implementará. Cada esquema só pode implementar uma classe.
Formato da API
POST /tenant/schemas
Solicitação
A solicitação deve incluir um atributo allOf
que faça referência a $id
de uma classe. Esse atributo define a "classe base" que o esquema implementará. Neste exemplo, a classe base é a classe XDM Individual Profile. O $id
da classe XDM Individual Profile é usado como o valor do campo $ref
na matriz allOf
abaixo.
curl -X POST \
https://platform.adobe.io/data/foundation/schemaregistry/tenant/schemas \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Content-Type: application/json' \
-d '{
"type": "object",
"title": "Loyalty Members",
"description": "Information for all members of the loyalty program",
"allOf": [
{
"$ref": "https://ns.adobe.com/xdm/context/profile"
}
]
}'
Resposta
Uma solicitação bem-sucedida retorna o Status de Resposta HTTP 201 (Criado) com um corpo de resposta que contém os detalhes do esquema recém-criado, incluindo $id
, meta:altIt
e version
. Esses valores são somente leitura e são atribuídos por Schema Registry.
{
"$id": "https://ns.adobe.com/tenantId/schemas/ee56b80adc7e03b8214e135a28538fe83c7f85bf87f565b3",
"meta:altId": "_tenantId.schemas.ee56b80adc7e03b8214e135a28538fe83c7f85bf87f565b3",
"meta:resourceType": "schemas",
"version": "1.0",
"title": "Loyalty Members",
"type": "object",
"description": "Information for all members of the loyalty program",
"allOf": [
{
"$ref": "https://ns.adobe.com/xdm/context/profile",
"type": "object",
"meta:xdmType": "object"
}
],
"refs": [
"https://ns.adobe.com/xdm/context/profile"
],
"imsOrg": "{ORG_ID}",
"meta:extensible": false,
"meta:abstract": false,
"meta:extends": [
"https://ns.adobe.com/xdm/common/auditable",
"https://ns.adobe.com/xdm/data/record",
"https://ns.adobe.com/xdm/context/profile"
],
"meta:xdmType": "object",
"meta:registryMetadata": {
"repo:createdDate": 1673310304048,
"repo:lastModifiedDate": 1673310304048,
"xdm:createdClientId": "{CLIENT_ID}",
"xdm:lastModifiedClientId": "{CLIENT_ID}",
"xdm:createdUserId": "{USER_ID}",
"xdm:lastModifiedUserId": "{USER_ID}",
"eTag": "6d2ed8acd9c3b768a44de29e069fc6f71329d2550f708381d22fa8bf8c192366",
"meta:globalLibVersion": "1.38.2"
},
"meta:class": "https://ns.adobe.com/xdm/context/profile",
"meta:containerId": "tenant",
"meta:sandboxId": "28e74200-e3de-11e9-8f5d-7f27416c5f0d",
"meta:sandboxType": "production",
"meta:tenantNamespace": "_tenantId"
}
Pesquisar um esquema
Para exibir o esquema recém-criado, execute uma solicitação de pesquisa (GET) usando o URI meta:altId
ou o URI $id
codificado por URL para o esquema.
Formato da API
GET /tenant/schemas/{SCHEMA_ID}
{SCHEMA_ID}
meta:altId
ou o $id
codificado na URL do esquema que você deseja pesquisar.Solicitação
curl -X GET \
https://platform.adobe.io/data/foundation/schemaregistry/tenant/schemas/https%3A%2F%2Fns.adobe.com%2F{TENANT_ID}%2Fschemas%2F533ca5da28087c44344810891b0f03d9\
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Accept: application/vnd.adobe.xed+json; version=1'
Resposta
O formato da resposta depende do cabeçalho Accept
enviado com a solicitação. Tente experimentar com diferentes cabeçalhos Accept
para ver qual deles atende melhor às suas necessidades.
{
"$id": "https://ns.adobe.com/{TENANT_ID}/schemas/ee56b80adc7e03b8214e135a28538fe83c7f85bf87f565b3",
"meta:altId": "_{TENANT_ID}.schemas.ee56b80adc7e03b8214e135a28538fe83c7f85bf87f565b3",
"meta:resourceType": "schemas",
"version": "1.0",
"title": "Loyalty Members",
"type": "object",
"description": "Information for all members of the loyalty program",
"allOf": [
{
"$ref": "https://ns.adobe.com/xdm/context/profile",
"type": "object",
"meta:xdmType": "object"
}
],
"imsOrg": "{ORG_ID}",
"meta:extensible": false,
"meta:abstract": false,
"meta:extends": [
"https://ns.adobe.com/xdm/common/auditable",
"https://ns.adobe.com/xdm/data/record",
"https://ns.adobe.com/xdm/context/profile"
],
"meta:xdmType": "object",
"meta:registryMetadata": {
"repo:createdDate": 1673310304048,
"repo:lastModifiedDate": 1673310304048,
"xdm:createdClientId": "{CLIENT_ID}",
"xdm:lastModifiedClientId": "{CLIENT_ID}",
"xdm:createdUserId": "{USER_ID}",
"xdm:lastModifiedUserId": "{USER_ID}",
"eTag": "6d2ed8acd9c3b768a44de29e069fc6f71329d2550f708381d22fa8bf8c192366",
"meta:globalLibVersion": "1.38.2"
},
"meta:class": "https://ns.adobe.com/xdm/context/profile",
"meta:containerId": "tenant",
"meta:sandboxId": "28e74200-e3de-11e9-8f5d-7f27416c5f0d",
"meta:sandboxType": "production",
"meta:tenantNamespace": "_{TENANT_ID}",
"meta:allFieldAccess": true
}
Adicionar um grupo de campos add-a-field-group
Agora que o esquema Membros de Fidelidade foi criado e confirmado, é possível adicionar grupos de campos a ele.
Há diferentes grupos de campos padrão disponíveis para uso, dependendo da classe do esquema selecionado. Cada grupo de campos contém um campo intendedToExtend
que define as classes com as quais esse grupo de campos é compatível.
Os grupos de campos definem conceitos, como "nome" ou "endereço", que podem ser reutilizados em qualquer esquema que precise capturar essas mesmas informações.
Formato da API
PATCH /tenant/schemas/{SCHEMA_ID}
{SCHEMA_ID}
meta:altId
ou o $id
codificado na URL do esquema ao qual você está adicionando o grupo de campos.Solicitação
Esta solicitação atualiza o esquema Membros de Fidelidade para incluir os campos no grupo de campos Detalhes Demográficos (profile-person-details
).
Ao adicionar o grupo de campos profile-person-details
, o esquema Membros de Fidelidade agora captura informações demográficas para membros do programa de fidelidade, como nome, sobrenome e aniversário.
curl -X PATCH \
https://platform.adobe.io/data/foundation/schemaregistry/tenant/schemas/_{TENANT_ID}.schemas.533ca5da28087c44344810891b0f03d9 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '[
{ "op": "add", "path": "/allOf/-", "value": {"$ref": "https://ns.adobe.com/xdm/context/profile-person-details"}}
]'
Resposta
A resposta mostra o grupo de campos recém-adicionado na matriz meta:extends
e contém um $ref
para o grupo de campos no atributo allOf
.
{
"$id": "https://ns.adobe.com/{TENANT_ID}/schemas/ee56b80adc7e03b8214e135a28538fe83c7f85bf87f565b3",
"meta:altId": "_{TENANT_ID}.schemas.ee56b80adc7e03b8214e135a28538fe83c7f85bf87f565b3",
"meta:resourceType": "schemas",
"version": "1.1",
"title": "Loyalty Members",
"type": "object",
"description": "Information for all members of the loyalty program",
"allOf": [
{
"$ref": "https://ns.adobe.com/xdm/context/profile",
"type": "object",
"meta:xdmType": "object"
},
{
"$ref": "https://ns.adobe.com/xdm/context/profile-person-details",
"type": "object",
"meta:xdmType": "object"
}
],
"refs": [
"https://ns.adobe.com/xdm/context/profile-person-details",
"https://ns.adobe.com/xdm/context/profile"
],
"imsOrg": "{ORG_ID}",
"meta:extensible": false,
"meta:abstract": false,
"meta:extends": [
"https://ns.adobe.com/xdm/context/profile-person-details",
"https://ns.adobe.com/xdm/common/auditable",
"https://ns.adobe.com/xdm/data/record",
"https://ns.adobe.com/xdm/context/profile"
],
"meta:xdmType": "object",
"meta:registryMetadata": {
"repo:createdDate": 1673310304048,
"repo:lastModifiedDate": 1673310912096,
"xdm:createdClientId": "{CLIENT_ID}",
"xdm:lastModifiedClientId": "{CLIENT_ID}",
"xdm:createdUserId": "{USER_ID}",
"xdm:lastModifiedUserId": "{USER_ID}",
"eTag": "b480f28a35f356b237fc129e796074a3f33a7a67df273f6a8beaee1ec6465540",
"meta:globalLibVersion": "1.38.2"
},
"meta:class": "https://ns.adobe.com/xdm/context/profile",
"meta:containerId": "tenant",
"meta:sandboxId": "28e74200-e3de-11e9-8f5d-7f27416c5f0d",
"meta:sandboxType": "production",
"meta:tenantNamespace": "_{TENANT_ID}",
"meta:descriptorStatus": {
"result": []
}
}
Adicionar mais grupos de campos
Os esquemas de Membros de Fidelidade exigem mais dois grupos de campos padrão, que podem ser adicionados repetindo as etapas com outro grupo de campos.
$id
é usado:code language-http |
---|
|
Formato da API
PATCH /tenant/schemas/{SCHEMA_ID}
{SCHEMA_ID}
meta:altId
ou o $id
codificado na URL do esquema que você está atualizando.Solicitação
Essa solicitação atualiza o esquema Membros de Fidelidade para incluir os campos nos seguintes grupos de campos padrão:
- Detalhes de Contato Pessoal (
profile-personal-details
): adiciona informações de contato, como endereço residencial, endereço de email e telefone residencial. - Detalhes de Fidelidade (
profile-loyalty-details
): adiciona informações de contato, como endereço residencial, endereço de email e telefone residencial.
curl -X PATCH \
https://platform.adobe.io/data/foundation/schemaregistry/tenant/schemas/_{TENANT_ID}.schemas.533ca5da28087c44344810891b0f03d9 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '[
{ "op": "add", "path": "/allOf/-", "value": {"$ref": "https://ns.adobe.com/xdm/context/profile-personal-details"}},
{ "op": "add", "path": "/allOf/-", "value": {"$ref": "https://ns.adobe.com/xdm/mixins/profile/profile-loyalty-details"}}
]'
Resposta
A resposta mostra os grupos de campos recém-adicionados na matriz meta:extends
e contém um $ref
para o grupo de campos no atributo allOf
.
O esquema Membros de Fidelidade agora deve conter quatro valores $ref
na matriz allOf
: profile
, profile-person-details
, profile-personal-details
e profile-loyalty-details
conforme mostrado abaixo.
{
"$id": "https://ns.adobe.com/{TENANT_ID}/schemas/ee56b80adc7e03b8214e135a28538fe83c7f85bf87f565b3",
"meta:altId": "_{TENANT_ID}.schemas.ee56b80adc7e03b8214e135a28538fe83c7f85bf87f565b3",
"meta:resourceType": "schemas",
"version": "1.2",
"title": "Loyalty Members",
"type": "object",
"description": "Information for all members of the loyalty program",
"allOf": [
{
"$ref": "https://ns.adobe.com/xdm/context/profile",
"type": "object",
"meta:xdmType": "object"
},
{
"$ref": "https://ns.adobe.com/xdm/context/profile-person-details",
"type": "object",
"meta:xdmType": "object"
},
{
"$ref": "https://ns.adobe.com/xdm/context/profile-personal-details",
"type": "object",
"meta:xdmType": "object"
},
{
"$ref": "https://ns.adobe.com/xdm/mixins/profile/profile-loyalty-details",
"type": "object",
"meta:xdmType": "object"
}
],
"refs": [
"https://ns.adobe.com/xdm/context/profile-person-details",
"https://ns.adobe.com/xdm/mixins/profile/profile-loyalty-details",
"https://ns.adobe.com/xdm/context/profile-personal-details",
"https://ns.adobe.com/xdm/context/profile"
],
"imsOrg": "{ORG_ID}",
"meta:extensible": false,
"meta:abstract": false,
"meta:extends": [
"https://ns.adobe.com/xdm/context/profile-person-details",
"https://ns.adobe.com/xdm/mixins/profile/profile-loyalty-details",
"https://ns.adobe.com/xdm/context/profile-personal-details",
"https://ns.adobe.com/xdm/common/auditable",
"https://ns.adobe.com/xdm/data/record",
"https://ns.adobe.com/xdm/context/profile"
],
"meta:xdmType": "object",
"meta:registryMetadata": {
"repo:createdDate": 1673310304048,
"repo:lastModifiedDate": 1673311559934,
"xdm:createdClientId": "{CLIENT_ID}",
"xdm:lastModifiedClientId": "{CLIENT_ID}",
"xdm:createdUserId": "{USER_ID}",
"xdm:lastModifiedUserId": "{USER_ID}",
"eTag": "1de5ed1a07e3478719952f0a8c94d5e5390d5a9a998761adb4cf1989137fd6ea",
"meta:globalLibVersion": "1.38.2"
},
"meta:class": "https://ns.adobe.com/xdm/context/profile",
"meta:containerId": "tenant",
"meta:sandboxId": "28e74200-e3de-11e9-8f5d-7f27416c5f0d",
"meta:sandboxType": "production",
"meta:tenantNamespace": "_{TENANT_ID}",
"meta:descriptorStatus": {
"result": []
}
}
Definir um novo grupo de campos
Embora o grupo de campos padrão Detalhes de fidelidade forneça campos úteis relacionados à fidelidade para o esquema, há campos de fidelidade adicionais que não estão incluídos em nenhum grupo de campos padrão.
Para adicionar esses campos, você pode definir seus próprios grupos de campos personalizados dentro do container tenant
. Esses grupos de campos são exclusivos de sua organização e não podem ser visualizados ou editados por ninguém fora dela.
Para criar (POST) um novo grupo de campos, sua solicitação deve incluir um campo meta:intendedToExtend
contendo $id
para a(s) classe(s) base com a(s) qual(is) o grupo de campos é compatível, juntamente com as propriedades que o grupo de campos incluirá.
Quaisquer propriedades personalizadas devem ser aninhadas em seu TENANT_ID
para evitar colisões com outros grupos de campos ou campos.
Formato da API
POST /tenant/fieldgroups
Solicitação
Esta solicitação cria um novo grupo de campos que tem um objeto loyaltyTier
contendo quatro campos específicos para um programa de fidelidade específico de uma empresa: id
, effectiveDate
, currentThreshold
e nextThreshold
.
curl -X POST\
https://platform.adobe.io/data/foundation/schemaregistry/tenant/fieldgroups\
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'content-type: application/json' \
-d '{
"type": "object",
"title": "Loyalty Tier",
"meta:intendedToExtend": [
"https://ns.adobe.com/xdm/context/profile"
],
"description": "Captures info about the current loyalty tier of a customer.",
"definitions": {
"loyaltyTier": {
"properties": {
"_{TENANT_ID}": {
"type": "object",
"properties": {
"loyaltyTier": {
"type": "object",
"properties": {
"id": {
"title": "Loyalty Tier Identifier",
"type": "string",
"description": "Loyalty Tier Identifier."
},
"effectiveDate": {
"title": "Effective Date",
"type": "string",
"format": "date-time",
"description": "Date the member joined their current loyalty tier."
},
"currentThreshold": {
"title": "Current Point Threshold",
"type": "integer",
"description": "The minimum number of loyalty points the member must maintain to remain in the current tier."
},
"nextThreshold": {
"title": "Next Point Threshold",
"type": "integer",
"description": "The number of loyalty points the member must accrue to graduate to the next tier."
}
}
}
}
}
}
}
},
"allOf": [
{
"$ref": "#/definitions/loyaltyTier"
}
]
}'
Resposta
Uma solicitação bem-sucedida retorna o Status de Resposta HTTP 201 (Criado) com um corpo de resposta contendo os detalhes do grupo de campos recém-criado, incluindo $id
, meta:altIt
e version
. Esses valores são somente leitura e são atribuídos por Schema Registry.
{
"$id": "https://ns.adobe.com/{TENANT_ID}/mixins/9068fd4ea2abf813f4fd2fc9c8b413ae453ff0efc7636691",
"meta:altId": "_{TENANT_ID}.mixins.9068fd4ea2abf813f4fd2fc9c8b413ae453ff0efc7636691",
"meta:resourceType": "mixins",
"version": "1.0",
"title": "Loyalty Tier",
"type": "object",
"description": "Captures info about the current loyalty tier of a customer.",
"definitions": {
"loyaltyTier": {
"properties": {
"_{TENANT_ID}": {
"type": "object",
"properties": {
"loyaltyTier": {
"type": "object",
"properties": {
"id": {
"title": "Loyalty Tier Identifier",
"type": "string",
"description": "Loyalty Tier Identifier.",
"meta:xdmType": "string"
},
"effectiveDate": {
"title": "Effective Date",
"type": "string",
"format": "date-time",
"description": "Date the member joined their current loyalty tier.",
"meta:xdmType": "date-time"
},
"currentThreshold": {
"title": "Current Point Threshold",
"type": "integer",
"description": "The minimum number of loyalty points the member must maintain to remain in the current tier.",
"meta:xdmType": "int"
},
"nextThreshold": {
"title": "Next Point Threshold",
"type": "integer",
"description": "The number of loyalty points the member must accrue to graduate to the next tier.",
"meta:xdmType": "int"
}
},
"meta:xdmType": "object"
}
},
"meta:xdmType": "object"
}
}
}
},
"allOf": [
{
"$ref": "#/definitions/loyaltyTier",
"type": "object",
"meta:xdmType": "object"
}
],
"refs": [],
"imsOrg": "{ORG_ID}",
"meta:extensible": true,
"meta:abstract": true,
"meta:intendedToExtend": [
"https://ns.adobe.com/xdm/context/profile"
],
"meta:xdmType": "object",
"meta:registryMetadata": {
"repo:createdDate": 1673313004645,
"repo:lastModifiedDate": 1673313004645,
"xdm:createdClientId": "{CLIENT_ID}",
"xdm:lastModifiedClientId": "{CLIENT_ID}",
"xdm:createdUserId": "{USER_ID}",
"xdm:lastModifiedUserId": "{USER_ID}",
"eTag": "98e5d48808f5a4d9655493777389568a2581cfce013351ab9e1595d82f698dd6",
"meta:globalLibVersion": "1.38.2"
},
"meta:containerId": "tenant",
"meta:sandboxId": "28e74200-e3de-11e9-8f5d-7f27416c5f0d",
"meta:sandboxType": "production",
"meta:tenantNamespace": "_{TENANT_ID}"
}
Adicionar o grupo de campos personalizados ao esquema
Agora você pode seguir as mesmas etapas para adicionar um grupo de campos padrão para adicionar este grupo de campos recém-criado ao esquema.
Formato da API
PATCH /tenant/schemas/{SCHEMA_ID}
{SCHEMA_ID}
meta:altId
ou o $id
codificado na URL do esquema.Solicitação
Essa solicitação atualiza (PATCH) o esquema Membros de fidelidade para incluir os campos no novo grupo de campos "Camada de fidelidade".
curl -X PATCH \
https://platform.adobe.io/data/foundation/schemaregistry/tenant/schemas/_{TENANT_ID}.schemas.533ca5da28087c44344810891b0f03d9 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '[
{ "op": "add", "path": "/allOf/-", "value": {"$ref": "https://ns.adobe.com/{TENANT_ID}/mixins/9068fd4ea2abf813f4fd2fc9c8b413ae453ff0efc7636691"}}
]'
Resposta
Você pode ver que o grupo de campos foi adicionado com êxito porque a resposta agora mostra o grupo de campos recém-adicionado na matriz meta:extends
e contém um $ref
para o grupo de campos no atributo allOf
.
{
"$id": "https://ns.adobe.com/{TENANT_ID}/schemas/ee56b80adc7e03b8214e135a28538fe83c7f85bf87f565b3",
"meta:altId": "_{TENANT_ID}.schemas.ee56b80adc7e03b8214e135a28538fe83c7f85bf87f565b3",
"meta:resourceType": "schemas",
"version": "1.3",
"title": "Loyalty Members",
"type": "object",
"description": "Information for all members of the loyalty program",
"allOf": [
{
"$ref": "https://ns.adobe.com/xdm/context/profile",
"type": "object",
"meta:xdmType": "object"
},
{
"$ref": "https://ns.adobe.com/xdm/context/profile-person-details",
"type": "object",
"meta:xdmType": "object"
},
{
"$ref": "https://ns.adobe.com/xdm/context/profile-personal-details",
"type": "object",
"meta:xdmType": "object"
},
{
"$ref": "https://ns.adobe.com/xdm/mixins/profile/profile-loyalty-details",
"type": "object",
"meta:xdmType": "object"
},
{
"$ref": "https://ns.adobe.com/{TENANT_ID}/mixins/9068fd4ea2abf813f4fd2fc9c8b413ae453ff0efc7636691",
"type": "object",
"meta:xdmType": "object"
}
],
"refs": [
"https://ns.adobe.com/xdm/context/profile-person-details",
"https://ns.adobe.com/xdm/mixins/profile/profile-loyalty-details",
"https://ns.adobe.com/xdm/context/profile-personal-details",
"https://ns.adobe.com/xdm/context/profile",
"https://ns.adobe.com/{TENANT_ID}/mixins/9068fd4ea2abf813f4fd2fc9c8b413ae453ff0efc7636691"
],
"imsOrg": "{ORG_ID}",
"meta:extensible": false,
"meta:abstract": false,
"meta:extends": [
"https://ns.adobe.com/xdm/context/profile-person-details",
"https://ns.adobe.com/xdm/mixins/profile/profile-loyalty-details",
"https://ns.adobe.com/xdm/context/profile-personal-details",
"https://ns.adobe.com/xdm/common/auditable",
"https://ns.adobe.com/xdm/data/record",
"https://ns.adobe.com/xdm/context/profile",
"https://ns.adobe.com/{TENANT_ID}/mixins/9068fd4ea2abf813f4fd2fc9c8b413ae453ff0efc7636691"
],
"meta:xdmType": "object",
"meta:registryMetadata": {
"repo:createdDate": 1673310304048,
"repo:lastModifiedDate": 1673313118938,
"xdm:createdClientId": "{CLIENT_ID}",
"xdm:lastModifiedClientId": "{CLIENT_ID}",
"xdm:createdUserId": "{USER_ID}",
"xdm:lastModifiedUserId": "{USER_ID}",
"eTag": "6559b197a04bb3fda5bc80bf383a260cfbe32539d528f0139c5750711eebfba2",
"meta:globalLibVersion": "1.38.2"
},
"meta:class": "https://ns.adobe.com/xdm/context/profile",
"meta:containerId": "tenant",
"meta:sandboxId": "28e74200-e3de-11e9-8f5d-7f27416c5f0d",
"meta:sandboxType": "production",
"meta:tenantNamespace": "_{TENANT_ID}",
"meta:descriptorStatus": {
"result": []
}
}
Visualizar o esquema atual
Agora é possível executar uma solicitação GET para visualizar o esquema atual e ver como os grupos de campos adicionados contribuíram para a estrutura geral do esquema.
Formato da API
GET /tenant/schemas/{SCHEMA_ID}
{SCHEMA_ID}
meta:altId
ou o $id
codificado na URL do esquema.Solicitação
curl -X GET \
https://platform.adobe.io/data/foundation/schemaregistry/tenant/schemas/_{TENANT_ID}.schemas.ee56b80adc7e03b8214e135a28538fe83c7f85bf87f565b3 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-H 'Accept: application/vnd.adobe.xed-full+json; version=1'
Resposta
Ao usar o cabeçalho application/vnd.adobe.xed-full+json; version=1
Accept
, você pode ver o esquema completo mostrando todas as propriedades. Essas propriedades são os campos contribuídos pela classe e pelos grupos de campos que foram usados para compor o esquema. No exemplo de resposta abaixo, somente os campos adicionados recentemente são mostrados para fins de espaço. Você pode exibir o esquema completo, incluindo todas as propriedades e seus atributos, no apêndice ao final deste documento.
Em "properties"
, você pode ver o namespace _{TENANT_ID}
que foi criado quando você adicionou o grupo de campos personalizados. Dentro desse namespace está o objeto loyaltyTier
e os campos que foram definidos quando o grupo de campos foi criado.
{
"$id": "https://ns.adobe.com/{TENANT_ID}/mixins/9068fd4ea2abf813f4fd2fc9c8b413ae453ff0efc7636691",
"meta:altId": "_{TENANT_ID}.mixins.9068fd4ea2abf813f4fd2fc9c8b413ae453ff0efc7636691",
"meta:resourceType": "mixins",
"version": "1.0",
"title": "Loyalty Tier",
"type": "object",
"description": "Captures info about the current loyalty tier of a customer.",
"definitions": {
"loyaltyTier": {
"properties": {
"_{TENANT_ID}": {
"type": "object",
"properties": {
"loyaltyTier": {
"type": "object",
"properties": {
"id": {
"title": "Loyalty Tier Identifier",
"type": "string",
"description": "Loyalty Tier Identifier.",
"meta:xdmType": "string"
},
"effectiveDate": {
"title": "Effective Date",
"type": "string",
"format": "date-time",
"description": "Date the member joined their current loyalty tier.",
"meta:xdmType": "date-time"
},
"currentThreshold": {
"title": "Current Point Threshold",
"type": "integer",
"description": "The minimum number of loyalty points the member must maintain to remain in the current tier.",
"meta:xdmType": "int"
},
"nextThreshold": {
"title": "Next Point Threshold",
"type": "integer",
"description": "The number of loyalty points the member must accrue to graduate to the next tier.",
"meta:xdmType": "int"
}
},
"meta:xdmType": "object"
}
},
"meta:xdmType": "object"
}
}
}
},
"allOf": [
{
"$ref": "#/definitions/loyaltyTier",
"type": "object",
"meta:xdmType": "object"
}
],
"refs": [],
"imsOrg": "{ORG_ID}",
"meta:extensible": true,
"meta:abstract": true,
"meta:intendedToExtend": [
"https://ns.adobe.com/xdm/context/profile"
],
"meta:xdmType": "object",
"meta:registryMetadata": {
"repo:createdDate": 1673313004645,
"repo:lastModifiedDate": 1673313004645,
"xdm:createdClientId": "{CLIENT_ID}",
"xdm:lastModifiedClientId": "{CLIENT_ID}",
"xdm:createdUserId": "{USER_ID}",
"xdm:lastModifiedUserId": "{USER_ID}",
"eTag": "98e5d48808f5a4d9655493777389568a2581cfce013351ab9e1595d82f698dd6",
"meta:globalLibVersion": "1.38.2"
},
"meta:containerId": "tenant",
"meta:sandboxId": "28e74200-e3de-11e9-8f5d-7f27416c5f0d",
"meta:sandboxType": "production",
"meta:tenantNamespace": "_{TENANT_ID}"
}
Criar um tipo de dados
O grupo de campos Camada de Fidelidade criado contém propriedades específicas que podem ser úteis em outros esquemas. Por exemplo, os dados podem ser assimilados como parte de um evento de experiência ou usados por um esquema que implementa uma classe diferente. Nesse caso, faz sentido salvar a hierarquia de objetos como um tipo de dados para facilitar a reutilização da definição em outro lugar.
Os tipos de dados permitem definir uma hierarquia de objeto uma vez e fazer referência a ela em um campo, da mesma forma que faria para qualquer outro tipo escalar.
Em outras palavras, os tipos de dados permitem o uso consistente de estruturas de vários campos, com mais flexibilidade do que grupos de campos, pois podem ser incluídos em qualquer lugar de um esquema adicionando-os como o "tipo" de um campo.
Formato da API
POST /tenant/datatypes
Solicitação
A definição de um tipo de dados não requer campos meta:extends
ou meta:intendedToExtend
, e os campos não precisam ser aninhados na ID do locatário para evitar colisões.
curl -X POST \
https://platform.adobe.io/data/foundation/schemaregistry/tenant/datatypes \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '{
"title": "Loyalty Tier",
"type": "object",
"description": "Loyalty Tier data type",
"definitions": {
"loyaltyTier": {
"type": "object",
"properties": {
"id": {
"title": "Loyalty Tier Identifier",
"type": "string",
"description": "Loyalty Tier Identifier."
},
"effectiveDate": {
"title": "Effective Date",
"type": "string",
"format": "date-time",
"description": "Date the member joined their current loyalty tier."
},
"currentThreshold": {
"title": "Current Point Threshold",
"type": "integer",
"description": "The minimum number of loyalty points the member must maintain to remain in the current tier."
},
"nextThreshold": {
"title": "Next Point Threshold",
"type": "integer",
"description": "The number of loyalty points the member must accrue to graduate to the next tier."
}
}
}
},
"allOf": [
{
"$ref": "#/definitions/loyaltyTier"
}
]
}'
Resposta
Uma solicitação bem-sucedida retorna o Status de Resposta HTTP 201 (Criado) com um corpo de resposta contendo os detalhes do tipo de dados recém-criado, incluindo $id
, meta:altIt
e version
. Esses valores são somente leitura e são atribuídos por Schema Registry.
{
"$id": "https://ns.adobe.com/{TENANT_ID}/datatypes/c069d13ebfaaa5980d988e7694d794b37b1784fe11d754cb",
"meta:altId": "_{TENANT_ID}.datatypes.c069d13ebfaaa5980d988e7694d794b37b1784fe11d754cb",
"meta:resourceType": "datatypes",
"version": "1.0",
"title": "Loyalty Tier",
"type": "object",
"description": "Loyalty Tier data type",
"definitions": {
"loyaltyTier": {
"type": "object",
"properties": {
"id": {
"title": "Loyalty Tier Identifier",
"type": "string",
"description": "Loyalty Tier Identifier.",
"meta:xdmType": "string"
},
"effectiveDate": {
"title": "Effective Date",
"type": "string",
"format": "date-time",
"description": "Date the member joined their current loyalty tier.",
"meta:xdmType": "date-time"
},
"currentThreshold": {
"title": "Current Point Threshold",
"type": "integer",
"description": "The minimum number of loyalty points the member must maintain to remain in the current tier.",
"meta:xdmType": "int"
},
"nextThreshold": {
"title": "Next Point Threshold",
"type": "integer",
"description": "The number of loyalty points the member must accrue to graduate to the next tier.",
"meta:xdmType": "int"
}
},
"meta:xdmType": "object"
}
},
"allOf": [
{
"$ref": "#/definitions/loyaltyTier",
"type": "object",
"meta:xdmType": "object"
}
],
"refs": [],
"imsOrg": "{ORG_ID}",
"meta:extensible": true,
"meta:abstract": true,
"meta:xdmType": "object",
"meta:registryMetadata": {
"repo:createdDate": 1673378256699,
"repo:lastModifiedDate": 1673378256699,
"xdm:createdClientId": "{CLIENT_ID}",
"xdm:lastModifiedClientId": "{CLIENT_ID}",
"xdm:createdUserId": "{USER_ID}",
"xdm:lastModifiedUserId": "{USER_ID}",
"eTag": "8afba84c0c9a68126a7a1389f8523a1112bdf4405badc6dcddbbb4a0e18f5cdb",
"meta:globalLibVersion": "1.38.2"
},
"meta:containerId": "tenant",
"meta:sandboxId": "28e74200-e3de-11e9-8f5d-7f27416c5f0d",
"meta:sandboxType": "production",
"meta:tenantNamespace": "_{TENANT_ID}"
}
Você pode executar uma solicitação de pesquisa (GET) usando o URI $id
codificado em URL para exibir o novo tipo de dados diretamente. Certifique-se de incluir o version
em seu cabeçalho Accept
para uma solicitação de pesquisa.
Usar tipo de dados no esquema
Agora que o tipo de dados Camada de Fidelidade foi criado, você pode atualizar (PATCH) o campo loyaltyTier
no grupo de campos criado para fazer referência ao tipo de dados no lugar dos campos que estavam lá anteriormente.
Formato da API
PATCH /tenant/fieldgroups/{FIELD_GROUP_ID}
{FIELD_GROUP_ID}
meta:altId
ou a URL codificada $id
do grupo de campos a ser atualizado.Solicitação
curl -X PATCH \
https://platform.adobe.io/data/foundation/schemaregistry/tenant/fieldgroups/_{TENANT_ID}.mixins.9068fd4ea2abf813f4fd2fc9c8b413ae453ff0efc7636691 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '[
{
"op": "replace",
"path": "/definitions/loyaltyTier/properties/_{TENANT_ID}/properties",
"value": {
"loyaltyTier": {
"title": "Loyalty Tier",
"$ref": "https://ns.adobe.com/{TENANT_ID}/datatypes/c069d13ebfaaa5980d988e7694d794b37b1784fe11d754cb",
"description": "Loyalty tier info"
}
}
}
]'
Resposta
A resposta agora inclui uma referência ($ref
) ao tipo de dados no objeto loyaltyTier
em vez dos campos que foram definidos anteriormente.
{
"$id": "https://ns.adobe.com/{TENANT_ID}/mixins/9068fd4ea2abf813f4fd2fc9c8b413ae453ff0efc7636691",
"meta:altId": "_{TENANT_ID}.mixins.9068fd4ea2abf813f4fd2fc9c8b413ae453ff0efc7636691",
"meta:resourceType": "mixins",
"version": "1.1",
"title": "Loyalty Tier",
"type": "object",
"description": "Captures info about the current loyalty tier of a customer.",
"definitions": {
"loyaltyTier": {
"properties": {
"_{TENANT_ID}": {
"type": "object",
"properties": {
"loyaltyTier": {
"title": "Loyalty Tier",
"$ref": "https://ns.adobe.com/{TENANT_ID}/datatypes/c069d13ebfaaa5980d988e7694d794b37b1784fe11d754cb",
"description": "Loyalty tier info",
"type": "object",
"meta:xdmType": "object"
}
},
"meta:xdmType": "object"
}
}
}
},
"allOf": [
{
"$ref": "#/definitions/loyaltyTier",
"type": "object",
"meta:xdmType": "object"
}
],
"refs": [
"https://ns.adobe.com/{TENANT_ID}/datatypes/c069d13ebfaaa5980d988e7694d794b37b1784fe11d754cb"
],
"imsOrg": "{ORG_ID}",
"meta:extensible": true,
"meta:abstract": true,
"meta:intendedToExtend": [
"https://ns.adobe.com/xdm/context/profile"
],
"meta:xdmType": "object",
"meta:registryMetadata": {
"repo:createdDate": 1673313004645,
"repo:lastModifiedDate": 1673378970276,
"xdm:createdClientId": "{CLIENT_ID}",
"xdm:lastModifiedClientId": "{CLIENT_ID}",
"xdm:createdUserId": "{USER_ID}",
"xdm:lastModifiedUserId": "{USER_ID}",
"eTag": "4df8fa56d00991590364606bb2e219e1ea8f5717a51c0e6ae57ca956830b6a27",
"meta:globalLibVersion": "1.38.2"
},
"meta:containerId": "tenant",
"meta:sandboxId": "28e74200-e3de-11e9-8f5d-7f27416c5f0d",
"meta:sandboxType": "production",
"meta:tenantNamespace": "_{TENANT_ID}",
"meta:descriptorStatus": {
"result": []
}
}
Se você executar uma solicitação GET para pesquisar o esquema agora, a propriedade loyaltyTier
mostrará a referência ao tipo de dados em meta:referencedFrom
:
"_{TENANT_ID}": {
"type": "object",
"meta:xdmType": "object",
"properties": {
"loyaltyTier": {
"title": "Loyalty Tier",
"description": "Loyalty tier info",
"type": "object",
"meta:xdmType": "object",
"properties": {
"id": {
"title": "Loyalty Tier Identifier",
"type": "string",
"description": "Loyalty Tier Identifier.",
"meta:xdmType": "string"
},
"effectiveDate": {
"title": "Effective Date",
"type": "string",
"format": "date-time",
"description": "Date the member joined their current loyalty tier.",
"meta:xdmType": "date-time"
},
"currentThreshold": {
"title": "Current Point Threshold",
"type": "integer",
"description": "The minimum number of loyalty points the member must maintain to remain in the current tier.",
"meta:xdmType": "int"
},
"nextThreshold": {
"title": "Next Point Threshold",
"type": "integer",
"description": "The number of loyalty points the member must accrue to graduate to the next tier.",
"meta:xdmType": "int"
}
},
"meta:referencedFrom": "https://ns.adobe.com/{TENANT_ID}/datatypes/c069d13ebfaaa5980d988e7694d794b37b1784fe11d754cb"
}
}
}
Definir um descritor de identidade
Esquemas são usados para assimilar dados em Experience Platform. Esses dados são usados em vários serviços para criar uma visualização única e unificada de um indivíduo. Para ajudar nesse processo, os campos principais podem ser marcados como "Identidade" e, após a assimilação dos dados, os dados nesses campos são inseridos no "Gráfico de identidade" desse indivíduo. Os dados do gráfico podem ser acessados pelo Real-Time Customer Profile e por outros serviços do Experience Platform para fornecer uma visão unificada de cada cliente individual.
Os campos comumente marcados como "Identidade" incluem: endereço de email, número de telefone, Experience Cloud ID (ECID), ID de CRM ou outros campos de ID exclusivos. Considere quaisquer identificadores exclusivos específicos da sua organização, pois eles também podem ser bons campos de identidade.
Os descritores de identidade sinalizam que sourceProperty
de sourceSchema
é um identificador exclusivo que deve ser considerado uma identidade.
Para obter mais informações sobre como trabalhar com descritores, consulte o guia do desenvolvedor do Registro de Esquemas.
Formato da API
POST /tenant/descriptors
Solicitação
A solicitação a seguir define um descritor de identidade no campo personalEmail.address
do esquema Membros de Fidelidade. Isso instrui Experience Platform a usar o endereço de email do membro do programa de fidelidade como um identificador para ajudar a unir informações sobre o indivíduo. Esta chamada também define este campo como a identidade principal do esquema, definindo xdm:isPrimary
como true
, que é um requisito para habilitar o esquema para uso no Perfil de Cliente em Tempo Real.
curl -X POST \
https://platform.adobe.io/data/foundation/schemaregistry/tenant/descriptors \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '{
"@type": "xdm:descriptorIdentity",
"xdm:sourceSchema": "https://ns.adobe.com/{TENANT_ID}/schemas/533ca5da28087c44344810891b0f03d9",
"xdm:sourceVersion": 1,
"xdm:sourceProperty": "/_{TENANT_ID}/loyalty/loyaltyId",
"xdm:namespace": "Email",
"xdm:property": "xdm:code",
"xdm:isPrimary": false
}'
Resposta
Uma resposta bem-sucedida retorna o Status HTTP 201 (Criado) com um corpo de resposta contendo os detalhes do descritor recém-criado, incluindo seu @id
. @id
é um campo somente leitura atribuído por Schema Registry e é usado para fazer referência ao descritor na API.
{
"@id": "719a4391897c097786efbaa6d4262bb928a1cd88540344c6",
"@type": "xdm:descriptorIdentity",
"xdm:sourceSchema": "https://ns.adobe.com/{TENANT_ID}/schemas/ee56b80adc7e03b8214e135a28538fe83c7f85bf87f565b3",
"xdm:sourceVersion": 1,
"xdm:sourceProperty": "/personalEmail/address",
"imsOrg": "{ORG_ID}",
"version": "1",
"xdm:namespace": "Email",
"xdm:property": "xdm:code",
"xdm:isPrimary": true,
"meta:containerId": "tenant",
"meta:sandboxId": "28e74200-e3de-11e9-8f5d-7f27416c5f0d",
"meta:sandboxType": "production"
}
Habilitar esquema para uso em Real-Time Customer Profile profile
Depois que o esquema tiver um descritor de identidade primário aplicado, você poderá habilitar o esquema Membros de Fidelidade para uso por Real-Time Customer Profile adicionando uma marca union
ao atributo meta:immutableTags
.
Adicionar uma tag union
Para que um esquema seja incluído na exibição de união mesclada, a marca union
deve ser adicionada ao atributo meta:immutableTags
do esquema. Isso é feito por meio de uma solicitação PATCH para atualizar o esquema e adicionar uma matriz meta:immutableTags
com um valor de union
.
Formato da API
PATCH /tenant/schemas/{SCHEMA_ID}
{SCHEMA_ID}
meta:altId
ou o $id
codificado na URL do esquema que você está habilitando para o Perfil.Solicitação
curl -X PATCH \
https://platform.adobe.io/data/foundation/schemaregistry/tenant/schemas/_{TENANT_ID}.schemas.533ca5da28087c44344810891b0f03d9 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '[
{ "op": "add", "path": "/meta:immutableTags", "value": ["union"]}
]'
Resposta
A resposta mostra que a operação foi executada com êxito e o esquema agora contém um atributo de nível superior, meta:immutableTags
, que é uma matriz contendo o valor, "union".
{
"$id": "https://ns.adobe.com/{TENANT_ID}/schemas/ee56b80adc7e03b8214e135a28538fe83c7f85bf87f565b3",
"meta:altId": "_{TENANT_ID}.schemas.ee56b80adc7e03b8214e135a28538fe83c7f85bf87f565b3",
"meta:resourceType": "schemas",
"version": "1.4",
"title": "Loyalty Members",
"type": "object",
"description": "Information for all members of the loyalty program",
"allOf": [
{
"$ref": "https://ns.adobe.com/xdm/context/profile",
"type": "object",
"meta:xdmType": "object"
},
{
"$ref": "https://ns.adobe.com/xdm/context/profile-person-details",
"type": "object",
"meta:xdmType": "object"
},
{
"$ref": "https://ns.adobe.com/xdm/context/profile-personal-details",
"type": "object",
"meta:xdmType": "object"
},
{
"$ref": "https://ns.adobe.com/xdm/mixins/profile/profile-loyalty-details",
"type": "object",
"meta:xdmType": "object"
},
{
"$ref": "https://ns.adobe.com/{TENANT_ID}/mixins/9068fd4ea2abf813f4fd2fc9c8b413ae453ff0efc7636691",
"type": "object",
"meta:xdmType": "object"
}
],
"refs": [
"https://ns.adobe.com/xdm/context/profile-person-details",
"https://ns.adobe.com/xdm/mixins/profile/profile-loyalty-details",
"https://ns.adobe.com/xdm/context/profile-personal-details",
"https://ns.adobe.com/xdm/context/profile",
"https://ns.adobe.com/{TENANT_ID}/mixins/9068fd4ea2abf813f4fd2fc9c8b413ae453ff0efc7636691"
],
"imsOrg": "{ORG_ID}",
"meta:extensible": false,
"meta:abstract": false,
"meta:extends": [
"https://ns.adobe.com/xdm/context/profile-person-details",
"https://ns.adobe.com/xdm/mixins/profile/profile-loyalty-details",
"https://ns.adobe.com/xdm/context/profile-personal-details",
"https://ns.adobe.com/xdm/common/auditable",
"https://ns.adobe.com/xdm/data/record",
"https://ns.adobe.com/xdm/context/profile",
"https://ns.adobe.com/{TENANT_ID}/mixins/9068fd4ea2abf813f4fd2fc9c8b413ae453ff0efc7636691"
],
"meta:xdmType": "object",
"meta:registryMetadata": {
"repo:createdDate": 1673310304048,
"repo:lastModifiedDate": 1673380280074,
"xdm:createdClientId": "{CLIENT_ID}",
"xdm:lastModifiedClientId": "{CLIENT_ID}",
"xdm:createdUserId": "{USER_ID}",
"xdm:lastModifiedUserId": "{USER_ID}",
"eTag": "c590ccc7a293040d85c2b7d93276480ef4b4aa9a4fcd6991f50fbb47f58bced2",
"meta:globalLibVersion": "1.38.2"
},
"meta:class": "https://ns.adobe.com/xdm/context/profile",
"meta:containerId": "tenant",
"meta:sandboxId": "28e74200-e3de-11e9-8f5d-7f27416c5f0d",
"meta:sandboxType": "production",
"meta:tenantNamespace": "_{TENANT_ID}",
"meta:immutableTags": [
"union"
],
"meta:descriptorStatus": {
"result": []
}
}
Listar esquemas em uma união
Você adicionou com êxito seu esquema à união XDM Individual Profile. Para ver uma lista de todos os esquemas que fazem parte da mesma união, você pode executar uma solicitação GET usando parâmetros de consulta para filtrar a resposta.
Usando o parâmetro de consulta property
, você pode especificar que apenas esquemas contendo um campo meta:immutableTags
que tenha um meta:class
igual ao $id
da classe XDM Individual Profile sejam retornados.
Formato da API
GET /tenant/schemas?property=meta:immutableTags==union&property=meta:class=={CLASS_ID}
Solicitação
A solicitação de exemplo abaixo retorna todos os esquemas que fazem parte da união XDM Individual Profile.
curl -X GET \
'https://platform.adobe.io/data/foundation/schemaregistry/tenant/schemas?property=meta:immutableTags==union&property=meta:class==https://ns.adobe.com/xdm/context/profile' \
-H 'Accept: application/vnd.adobe.xed-id+json' \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}'
Resposta
A resposta é uma lista filtrada de esquemas, contendo apenas aqueles que atendem a ambos os requisitos. Lembre-se de que, ao usar vários parâmetros de consulta, uma relação AND é presumida. O formato da resposta da lista depende do cabeçalho Accept
enviado na solicitação.
{
"results": [
{
"$id": "https://ns.adobe.com/{TENANT_ID}/schemas/d29a200b5deb6cfb55d3b865ef627f33",
"meta:altId": "_{TENANT_ID}.schemas.d29a200b5deb6cfb55d3b865ef627f33",
"version": "1.2",
"title": "Profile Schema"
},
{
"$id": "https://ns.adobe.com/{TENANT_ID}/schemas/5d70026f5522fc60b3c81f6523b83c86",
"meta:altId": "_{TENANT_ID}.schemas.5d70026f5522fc60b3c81f6523b83c86",
"version": "1.3",
"title": "CRM Onboarding"
},
{
"$id": "https://ns.adobe.com/{TENANT_ID}/schemas/653e53eb04341d09453c9b6a5fb43d1b4ca9526ec274856d",
"meta:altId": "_{TENANT_ID}.schemas.653e53eb04341d09453c9b6a5fb43d1b4ca9526ec274856d",
"version": "1.1",
"title": "Profile consents"
},
{
"$id": "https://ns.adobe.com/{TENANT_ID}/schemas/ee56b80adc7e03b8214e135a28538fe83c7f85bf87f565b3",
"meta:altId": "_{TENANT_ID}.schemas.ee56b80adc7e03b8214e135a28538fe83c7f85bf87f565b3",
"version": "1.4",
"title": "Loyalty Members"
}
],
"_page": {
"orderby": "updated",
"next": null,
"count": 4
},
"_links": {
"next": null,
"global_schemas": {
"href": "https://platform.adobe.io/data/foundation/schemaregistry/global/schemas?property=meta:immutableTags==union&property=meta:class==https://ns.adobe.com/xdm/context/profile"
}
}
}
Próximas etapas
Ao seguir este tutorial, você compôs um esquema com sucesso usando grupos de campos padrão e um grupo de campos definido. Agora você pode usar esse esquema para criar um conjunto de dados e assimilar dados de registro na Adobe Experience Platform.
O esquema Membros de fidelidade completo, conforme criado neste tutorial, está disponível no apêndice a seguir. Ao observar o esquema, é possível ver como os grupos de campos contribuem para a estrutura geral e quais campos estão disponíveis para assimilação de dados.
Depois de criar mais de um schema, você pode definir os relacionamentos entre eles usando descritores de relacionamento. Consulte o tutorial para definindo uma relação entre dois esquemas para obter mais informações. Para obter exemplos detalhados de como executar todas as operações (GET, POST, PUT, PATCH e DELETE) no registro, consulte o guia do desenvolvedor do Registro de Esquemas enquanto trabalha com a API.
Apêndice appendix
As informações a seguir complementam o tutorial sobre a API.
Concluir esquema de Membros de Fidelidade complete-schema
Neste tutorial, um esquema é composto para descrever os membros de um programa de fidelidade de varejo.
O esquema implementa a classe XDM Individual Profile e combina vários grupos de campos. Captura informações sobre os membros de fidelidade usando os grupos de campos padrão Demographic Details, Detalhes de Contato Pessoal e Detalhes de Fidelidade, bem como por meio de um grupo de campos Camada de Fidelidade personalizado definido durante o tutorial.
O esquema a seguir mostra o esquema Membros de Fidelidade concluído no formato JSON:
code language-json |
---|
|