Créer un schéma à l’aide de l’API Schema Registry
Le Schema Registry permet d’accéder au Schema Library dans Adobe Experience Platform. Le Schema Library contient les ressources mises à votre disposition par Adobe, les partenaires Experience Platform et les fournisseurs dont vous utilisez les applications. Le registre fournit une interface utilisateur et une API RESTful à partir de laquelle toutes les ressources disponibles de la bibliothèque sont accessibles.
Ce tutoriel utilise l’API Schema Registry pour vous guider tout au long des étapes de composition d’un schéma à l’aide d’une classe standard. Si vous préférez utiliser l’interface utilisateur dans Experience Platform, le tutoriel de l’éditeur de schémas 🔗 fournit des instructions détaillées pour exécuter des actions similaires dans l’éditeur de schémas.
Prise en main
Ce guide nécessite une compréhension professionnelle des composants suivants d’Adobe Experience Platform :
- Experience Data Model (XDM) System : cadre normalisé selon lequel Experience Platform organise les données de l’expérience client.
- Principes de base de la composition des schémas : découvrez les blocs de création de base des schémas XDM, y compris les principes clés et les bonnes pratiques en matière de composition de schémas.
- Real-Time Customer Profile : fournit un profil de consommateur unifié en temps réel, basé sur des données agrégées provenant de plusieurs sources.
- Sandboxes : Experience Platform fournit des sandbox virtuels qui divisent une instance Experience Platform unique en environnements virtuels distincts pour favoriser le développement et l’évolution d’applications d’expérience digitale.
Avant de commencer ce tutoriel, consultez le guide de développement pour obtenir les informations importantes à connaître afin d’effectuer avec succès des appels vers l’API Schema Registry. Cela inclut votre {TENANT_ID}
, le concept de « conteneurs » et les en-têtes requis pour effectuer des requêtes (avec une attention particulière à l’en-tête Accept
et à ses valeurs possibles).
Ce tutoriel passe en revue les étapes de la composition d’un schéma Loyalty Members qui décrit les données relatives aux membres d’un programme de fidélité dans la vente au détail. Avant de commencer, vous pouvez consulter avoir un aperçu de l’intégralité du schéma Loyalty Members dans l’annexe.
Composition d’un schéma avec une classe standard
Un schéma peut être considéré comme le plan directeur des données que vous souhaitez ingérer dans Experience Platform. Chaque schéma est composé d’une classe et de zéro ou plusieurs groupes de champs. En d’autres termes, il n’est pas nécessaire d’ajouter un groupe de champs pour définir un schéma, mais dans la plupart des cas, au moins un groupe de champs est utilisé.
Attribution d’une classe
Le processus de composition du schéma commence par la sélection d’une classe. La classe définit les principaux aspects comportementaux des données (enregistrement ou série temporelle), ainsi que les champs minimaux requis pour décrire les données qui seront ingérées.
Le schéma que vous créez dans ce tutoriel utilise la classe XDM Individual Profile . XDM Individual Profile est une classe standard fournie par Adobe pour définir le comportement des enregistrements. Vous trouverez plus d’informations sur le comportement dans les principes de base de la composition des schémas.
Pour attribuer une classe, un appel API est effectué pour créer (POST) un nouveau schéma dans le conteneur du client. Cet appel inclut la classe que le schéma va implémenter. Chaque schéma ne peut mettre en œuvre qu’une seule classe.
Format d’API
POST /tenant/schemas
Requête
La requête doit inclure un attribut allOf
qui fait référence à la clé $id
d’une classe. Cet attribut définit la « classe de base » que le schéma va mettre en œuvre. Dans cet exemple, la classe de base est la classe XDM Individual Profile. La $id
de la classe XDM Individual Profile est utilisée comme valeur du champ $ref
dans le tableau allOf
ci-dessous.
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"
}
]
}'
Réponse
Une requête réussie renvoie un état de réponse HTTP 201 (Created) avec un corps de réponse qui contient les détails du nouveau schéma, y compris les clés $id
, meta:altIt
, et version
. Ces valeurs sont en lecture seule et sont attribuées par le 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"
}
Recherche d’un schéma
Pour afficher votre nouveau schéma, effectuez une requête de recherche (GET) en utilisant la clé meta:altId
ou l’URI $id
encodé par URL pour le schéma.
Format d’API
GET /tenant/schemas/{SCHEMA_ID}
{SCHEMA_ID}
$id
meta:altId
ou encodé URL du schéma que vous souhaitez rechercher.Requête
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'
Réponse
Le format de la réponse dépend de l’en-tête Accept
envoyé avec la requête. Essayez d’utiliser différents en-têtes Accept
pour déterminer celui qui répond le mieux à vos besoins.
{
"$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
}
Ajouter un groupe de champs add-a-field-group
Maintenant que le schéma Membres du programme de fidélité a été créé et confirmé, il est possible d’y ajouter des groupes de champs.
Différents groupes de champs standard sont disponibles, selon la classe de schéma sélectionnée. Chaque groupe de champs contient un champ intendedToExtend
qui définit la ou les classes avec lesquelles ce groupe de champs est compatible.
Les groupes de champs définissent des concepts, tels que « nom » ou « adresse », qui peuvent être réutilisés dans n’importe quel schéma qui doit capturer ces mêmes informations.
Format d’API
PATCH /tenant/schemas/{SCHEMA_ID}
{SCHEMA_ID}
$id
codée en meta:altId
ou en URL du schéma auquel vous ajoutez le groupe de champs.Requête
Cette requête met à jour le schéma Membres du programme de fidélité pour inclure les champs du groupe de champs Détails démographiques(profile-person-details
).
En ajoutant le groupe de champs profile-person-details
, le schéma Membres du programme de fidélité capture désormais les informations démographiques des membres du programme de fidélité, telles que leur prénom, leur nom et leur anniversaire.
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"}}
]'
Réponse
La réponse affiche le groupe de champs nouvellement ajouté dans le tableau meta:extends
et contient une $ref
au groupe de champs dans l’attribut 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": []
}
}
Ajouter d’autres groupes de champs
Les schémas Membres du programme de fidélité nécessitent deux groupes de champs standard supplémentaires que vous pouvez ajouter en répétant les étapes à l’aide d’un autre groupe de champs.
$id
XDM Individual Profile est utilisée :code language-http |
---|
|
Format d’API
PATCH /tenant/schemas/{SCHEMA_ID}
{SCHEMA_ID}
$id
meta:altId
ou encodé URL du schéma que vous mettez à jour.Requête
Cette requête met à jour le schéma Membres du programme de fidélité pour inclure les champs des groupes de champs standard suivants :
- Coordonnées personnelles (
profile-personal-details
) : permet d’ajouter des informations de contact telles que l’adresse personnelle, l’adresse e-mail et le téléphone personnel. - Détails de fidélité (
profile-loyalty-details
) : ajoute des informations de contact telles que l’adresse personnelle, l’adresse e-mail et le téléphone personnel.
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"}}
]'
Réponse
La réponse affiche les groupes de champs nouvellement ajoutés dans le tableau meta:extends
et contient une $ref
au groupe de champs dans l’attribut allOf
.
Le schéma Membres du programme de fidélité doit maintenant contenir quatre valeurs de $ref
dans le tableau allOf
: profile
, profile-person-details
, profile-personal-details
et profile-loyalty-details
, comme illustré ci-dessous.
{
"$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": []
}
}
Définir un nouveau groupe de champs
Bien que le groupe de champs standard Détails de fidélité fournisse des champs liés à la fidélité utiles au schéma, d’autres champs de fidélité ne sont inclus dans aucun groupe de champs standard.
Pour ajouter ces champs, vous pouvez définir vos propres groupes de champs personnalisés dans le conteneur tenant
. Ces groupes de champs sont propres à votre organisation et ne sont ni visibles ni modifiables par quiconque extérieur à votre organisation.
Pour créer (POST) un groupe de champs, votre requête doit inclure un champ meta:intendedToExtend
contenant les $id
de la ou des classes de base avec lesquelles le groupe de champs est compatible, ainsi que les propriétés que le groupe de champs inclura.
Toutes les propriétés personnalisées doivent être imbriquées sous votre TENANT_ID
pour éviter les conflits avec d’autres groupes de champs ou champs.
Format d’API
POST /tenant/fieldgroups
Requête
Cette requête crée un groupe de champs qui a un objet loyaltyTier
contenant quatre champs spécifiques au programme de fidélité particulier d’une entreprise : id
, effectiveDate
, currentThreshold
et 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"
}
]
}'
Réponse
Une requête réussie renvoie le statut de réponse HTTP 201 (Created) avec un corps de réponse contenant les détails du groupe de champs nouvellement créé, y compris les $id
, meta:altIt
et version
. Ces valeurs sont en lecture seule et sont attribuées par le 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}"
}
Ajout du groupe de champs personnalisés au schéma
Vous pouvez maintenant suivre les mêmes étapes pour ajouter un groupe de champs standard pour ajouter ce nouveau groupe de champs à votre schéma.
Format d’API
PATCH /tenant/schemas/{SCHEMA_ID}
{SCHEMA_ID}
$id
meta:altId
ou encodée en URL du schéma.Requête
Cette requête met à jour (PATCH) le schéma Membres du programme de fidélité pour inclure les champs du nouveau groupe de champs « Niveau de fidélité ».
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"}}
]'
Réponse
Vous pouvez constater que le groupe de champs a été ajouté avec succès, car la réponse affiche désormais le groupe de champs nouvellement ajouté dans le tableau meta:extends
et contient une $ref
au groupe de champs dans l’attribut 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": []
}
}
Affichage du schéma actuel
Vous pouvez maintenant effectuer une requête GET pour afficher le schéma actuel et voir comment les groupes de champs ajoutés ont contribué à la structure globale du schéma.
Format d’API
GET /tenant/schemas/{SCHEMA_ID}
{SCHEMA_ID}
$id
meta:altId
ou encodée en URL du schéma.Requête
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'
Réponse
En utilisant l’en-tête application/vnd.adobe.xed-full+json; version=1
Accept
, vous pouvez voir le schéma complet présentant toutes les propriétés. Ces propriétés sont les champs fournis par la classe et les groupes de champs qui ont été utilisés pour composer le schéma. Dans l’exemple de réponse ci-dessous, seuls les champs récemment ajoutés sont affichés pour l’espace. Vous pouvez consulter le schéma dans son intégralité, y compris toutes les propriétés et leurs attributs, dans l’annexe à la fin de ce document.
Sous "properties"
, vous pouvez voir l’espace de noms _{TENANT_ID}
qui a été créé lorsque vous avez ajouté le groupe de champs personnalisés. Dans cet espace de noms se trouvent l’objet loyaltyTier
et les champs définis lors de la création du groupe de champs .
{
"$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}"
}
Création d’un type de données
Le groupe de champs Niveau de fidélité que vous avez créé contient des propriétés spécifiques qui peuvent s’avérer utiles dans d’autres schémas. Par exemple, les données peuvent être ingérées dans le cadre d’un événement d’expérience ou utilisées par un schéma qui met en œuvre une autre classe. Dans ce cas, il est logique d’enregistrer la hiérarchie d’objets en tant que type de données afin de faciliter la réutilisation de la définition ailleurs.
Les types de données vous permettent de définir une hiérarchie d’objets une seule fois, et d’y faire référence dans un champ comme vous le feriez pour tout autre type scalaire.
En d’autres termes, les types de données permettent l’utilisation cohérente de structures à champs multiples, avec une plus grande flexibilité que les groupes de champs, car ils peuvent être inclus n’importe où dans un schéma en les ajoutant comme « type » d’un champ.
Format d’API
POST /tenant/datatypes
Requête
La définition d’un type de données ne nécessite pas de champs meta:extends
ou meta:intendedToExtend
, et les champs n’ont pas besoin d’être imbriqués sous votre identifiant client pour éviter les collisions.
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"
}
]
}'
Réponse
Une requête réussie renvoie un état de réponse HTTP 201 (Created) avec un corps de réponse qui contient les détails du nouveau type de données, y compris les clés $id
, meta:altIt
, et version
. Ces valeurs sont en lecture seule et sont attribuées par le 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}"
}
Vous pouvez effectuer une requête de recherche (GET) à l’aide de l’URI $id
encodé par URL pour afficher directement le nouveau type de données. Veillez à inclure le version
dans votre en-tête Accept
pour une requête de recherche.
Utilisation du type de données dans le schéma
Maintenant que le type de données Niveau de fidélité a été créé, vous pouvez mettre à jour (PATCH) le champ loyaltyTier
dans le groupe de champs que vous avez créé pour référencer le type de données à la place des champs qui s’y trouvaient auparavant.
Format d’API
PATCH /tenant/fieldgroups/{FIELD_GROUP_ID}
{FIELD_GROUP_ID}
$id
codée en meta:altId
ou URL du groupe de champs à mettre à jour.Requête
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"
}
}
}
]'
Réponse
La réponse inclut désormais une référence ($ref
) au type de données dans l’objet loyaltyTier
au lieu des champs précédemment définis.
{
"$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": []
}
}
Si vous effectuez une requête GET pour rechercher le schéma maintenant, la propriété loyaltyTier
affiche la référence au type de données sous 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"
}
}
}
Définition d’un descripteur d’identité
Les schémas sont utilisés pour ingérer des données dans Experience Platform. Ces données sont finalement utilisées par plusieurs services pour créer une vue unique et unifiée d’un individu. Pour faciliter ce processus, les champs clés peuvent être désignés comme champs « Identity » et, lors de l’ingestion de données, les données de ces champs sont intégrées au « Graphique d’identité » pour cette personne. Les données du graphique peuvent ensuite être consultées par Real-Time Customer Profile et d’autres services Experience Platform afin de fournir une vue d’ensemble de chaque client individuel.
Les champs généralement désignés comme champs « Identité » sont les suivants : adresse e-mail, numéro de téléphone, Experience Cloud ID (ECID), identifiant CRM ou d’autres champs d’identification uniques. Tenez compte des identifiants uniques propres à votre organisation, dans la mesure où ils peuvent aussi représenter de bons champs d’identité.
Les descripteurs d’identité signalent que la sourceProperty
du sourceSchema
est un identifiant unique qui doit être considéré comme une identité.
Pour plus d’informations sur l’utilisation des descripteurs, consultez le guide de développement du registre des schémas.
Format d’API
POST /tenant/descriptors
Requête
La requête suivante définit un descripteur d’identité dans le champ personalEmail.address
pour le schéma Membres du programme de fidélité. Cela Experience Platform indique d’utiliser l’adresse e-mail du membre du programme de fidélité comme identifiant pour aider à rassembler les informations sur l’individu. Cet appel définit également ce champ comme identité principale du schéma en définissant xdm:isPrimary
sur true
, ce qui est une exigence pour activer le schéma à utiliser dans le profil client en temps réel.
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
}'
Réponse
Une réponse réussie renvoie un état de réponse HTTP 201 (Created) avec un corps de réponse qui contient les détails du nouveau descripteur, y compris la clé @id
. Le @id
est un champ en lecture seule affecté par le Schema Registry et utilisé pour référencer le descripteur dans l’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"
}
Activer le schéma à utiliser dans Real-Time Customer Profile profile
Une fois que le schéma comporte un descripteur d’identité principale appliqué, vous pouvez activer le schéma Membres du programme de fidélité à utiliser par Real-Time Customer Profile en ajoutant une balise union
à l’attribut meta:immutableTags
.
Ajouter une balise union
Pour qu’un schéma soit inclus dans la vue d’union fusionnée, la balise union
doit être ajoutée à l’attribut meta:immutableTags
du schéma. Cette opération est effectuée par le biais d’une requête PATCH pour mettre à jour le schéma et ajouter un tableau meta:immutableTags
avec une valeur de union
.
Format d’API
PATCH /tenant/schemas/{SCHEMA_ID}
{SCHEMA_ID}
$id
meta:altId
ou encodé URL du schéma que vous activez pour Profile.Requête
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"]}
]'
Réponse
La réponse indique que l’opération a été effectuée correctement, et que le schéma contient maintenant un attribut de niveau supérieur, meta:immutableTags
, qui est un tableau contenant la valeur « 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": []
}
}
Liste des schémas dans une union
Vous avez maintenant correctement ajouté votre schéma à l’union XDM Individual Profile. Afin d’obtenir une liste de tous les schémas qui font partie d’une même union, vous pouvez effectuer une requête GET en utilisant les paramètres de requête pour filtrer la réponse.
À l’aide du paramètre de requête property
, vous pouvez spécifier que seuls les schémas contenant un champ de meta:immutableTags
dont la meta:class
est égale à la $id
de la classe XDM Individual Profile sont renvoyés.
Format d’API
GET /tenant/schemas?property=meta:immutableTags==union&property=meta:class=={CLASS_ID}
Requête
L’exemple de requête ci-dessous renvoie tous les schémas qui font partie de l’union 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}'
Réponse
La réponse est une liste filtrée de schémas, contenant uniquement ceux qui répondent aux deux exigences. N’oubliez pas que lorsque vous utilisez plusieurs paramètres de requête, une relation ET est présumée. Le format de la réponse de la liste dépend de l’en-tête Accept
envoyé dans la requête.
{
"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"
}
}
}
Étapes suivantes
Ce tutoriel vous a permis de composer un schéma à l’aide des groupes de champs standard et d’un groupe de champs que vous avez défini. Vous pouvez maintenant utiliser ce schéma pour créer un jeu de données et ingérer des données d’enregistrement dans Adobe Experience Platform.
L’intégralité du schéma Loyalty Members, tel que créé tout au long de ce tutoriel, est disponible dans l’annexe suivante. Lorsque vous examinez le schéma, vous pouvez voir comment les groupes de champs contribuent à la structure globale et quels champs sont disponibles pour l’ingestion des données.
Une fois que vous avez créé plusieurs schémas, vous pouvez définir leurs relations en utilisant des descripteurs de relations. Pour plus d’informations, consultez le tutoriel sur la définition d’une relation entre deux schémas. Pour obtenir des exemples détaillés sur la manière d’effectuer toutes les opérations (GET, POST, PUT, PATCH et DELETE) dans le registre, veuillez vous référer au guide de développement du registre des schémas lorsque vous utilisez l’API.
Annexe appendix
Les informations suivantes complètent le tutoriel sur l’API.
Compléter le schéma des membres du programme de fidélité complete-schema
Dans ce tutoriel, un schéma est composé pour décrire les membres d’un programme de fidélité dans la vente au détail.
Le schéma implémente la classe XDM Individual Profile et combine plusieurs groupes de champs. Il capture les informations sur les membres du programme de fidélité à l’aide des groupes de champs Demographic Details standard, Coordonnées personnelles et Détails de fidélité, ainsi que par le biais d’un groupe de champs Niveau de fidélité personnalisé défini pendant le tutoriel.
Vous trouverez ci-dessous le schéma Loyalty Members au format JSON :
code language-json |
---|
|