DocumentatieExperience PlatformHandleiding voor Experience Data Model (XDM)

Specifieke velden aan een schema toevoegen met de API voor het schemaregister

4 april 2025
  • Onderwerpen:

Gemaakt voor:

  • Ontwikkelaar

De schema's van het Gegevensmodel van de ervaring (XDM) zijn samengesteld uit een basisklasse, met extra gebieden inbegrepen door het gebruik van standaardgebiedsgroepen die door Adobe en de groepen van het douanegebied worden bepaald door uw organisatie worden bepaald.

Wanneer u een schema samenstelt, wilt u wellicht bepaalde velden uit een bepaalde veldgroep gebruiken, terwijl u andere wilt uitsluiten van dezelfde groep die u niet nodig hebt. Deze zelfstudie laat zien hoe u afzonderlijke velden van een veldgroep kunt toevoegen aan een schema met behulp van de API voor schemaregistratie.

NOTE
Voor informatie over hoe te om individuele schemagebieden in Adobe Experience Platform toe te voegen en te verwijderen UI, zie de gids op op gebied-gebaseerde werkschema's(momenteel in bèta).

Vereisten

Dit leerprogramma impliceert het maken van vraag aan de Registratie API van het Schema. Alvorens te beginnen, te herzien gelieve de ontwikkelaarsgidsvoor belangrijke informatie die u moet kennen om met succes vraag aan API, met inbegrip van uw {TENANT_ID}, het concept containers, en de vereiste kopballen te maken om verzoeken te doen.

Het veld meta:refProperty

Voor elk schema wordt naar de klasse- en veldgroepen die de structuur ervan vormen verwezen onder de array allOf . Elke component wordt vertegenwoordigd als een object dat een eigenschap $ref bevat die naar de URI van de component $id verwijst.

De volgende JSON vertegenwoordigt een vereenvoudigd schema dat één enkele klasse (experienceevent) en gebiedsgroep (experienceevent-all) gebruikt:

{
  "title": "My Sample Schema",
  "description": "My Sample Description",
  "type": "object",
  "allOf": [
    {
      "$ref": "https://ns.adobe.com/xdm/context/experienceevent"
    },
    {
      "$ref": "https://ns.adobe.com/experience/campaign/experienceevent-all"
    }
  ]
}

Voor elk object in de array allOf dat verwijst naar een veldgroep, kunt u een verwant meta:refProperty -veld toevoegen om op te geven welke velden in de groep moeten worden opgenomen in het schema.

NOTE
Elk veld wordt opgegeven met een JSON-aanwijzertekenreeks die het pad vertegenwoordigt naar het veld binnen de desbetreffende veldgroep. De tekenreeks moet beginnen met een slash (/) en mag geen naamruimten van het type properties bevatten. Bijvoorbeeld: /_experience/campaign/message/id .

Wanneer meta:refProperty wordt opgenomen als een tekenreeks, kan het verwijzen naar één veld in een groep. Andere velden van dezelfde groep kunnen worden opgenomen door dezelfde $ref -waarde te gebruiken in een ander object met een andere meta:refProperty -waarde.

{
  "title": "My Sample Schema",
  "description": "An example schema that uses the XDM ExperienceEvent class.",
  "type": "object",
  "allOf": [
    {
      "$ref": "https://ns.adobe.com/xdm/context/experienceevent"
    },
    {
      "$ref": "https://ns.adobe.com/experience/campaign/experienceevent-all",
      "meta:refProperty": "/_experience/campaign/message/id"
    },
    {
      "$ref": "https://ns.adobe.com/experience/campaign/experienceevent-all",
      "meta:refProperty": "/_experience/campaign/message/size"
    }
  ]
}

U kunt meta:refProperty ook als een array opgeven, zodat u meerdere velden kunt opgeven die vanuit een bepaalde groep in één allOf -lijstitem moeten worden opgenomen:

{
  "title": "My Sample Schema",
  "description": "An example schema that uses the XDM ExperienceEvent class.",
  "type": "object",
  "allOf": [
    {
      "$ref": "https://ns.adobe.com/xdm/context/experienceevent"
    },
    {
      "$ref": "https://ns.adobe.com/experience/campaign/experienceevent-all",
      "meta:refProperty": [
        "/_experience/campaign/message/id",
        "/_experience/campaign/message/size",
        "/_experience/campaign/message/variant"
      ]
    }
  ]
}

Velden toevoegen met een PUT-bewerking

U kunt een PUT-aanvraag gebruiken om een volledig schema te herschrijven en de velden te configureren die u onder allOf wilt opnemen.

API formaat

PUT /tenant/schemas/{SCHEMA_ID}
Parameter
Beschrijving
{SCHEMA_ID}
De meta:altId of URL-gecodeerde $id van het schema dat u wilt herschrijven.

Verzoek

Met de volgende aanvraag worden de specifieke velden bijgewerkt die zijn opgenomen in de veldgroep onder de array allOf .

curl -X PUT \
  https://platform.adobe.io/data/foundation/schemaregistry/tenant/schemas/_{TENANT_ID}.schemas.d5cc04eb8d50190001287e4c869ebe67 \
  -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 '{
        "title": "My Sample Schema",
        "description": "My Sample Description",
        "type": "object",
        "allOf": [
          {
            "$ref": "https://ns.adobe.com/xdm/context/experienceevent"
          },
          {
            "$ref": "https://ns.adobe.com/experience/campaign/experienceevent-all",
            "meta:refProperty": [
              "/_experience/campaign/message/id",
              "/_experience/campaign/message/size",
              "/_experience/campaign/message/variant"
            ]
          }
        ]
      }'

Reactie

Een succesvolle reactie keert de details van het bijgewerkte schema terug.

{
  "title": "My Sample Schema",
  "description": "My Sample Description",
  "type": "object",
  "allOf": [
    {
      "$ref": "https://ns.adobe.com/xdm/context/experienceevent"
    },
    {
      "$ref": "https://ns.adobe.com/experience/campaign/experienceevent-all",
      "meta:refProperty": [
        "/_experience/campaign/message/id",
        "/_experience/campaign/message/size",
        "/_experience/campaign/message/variant"
      ]
    }
  ],
  "meta:class": "https://ns.adobe.com/xdm/context/experienceevent",
  "meta:abstract": false,
  "meta:extensible": false,
  "meta:extends": [
      "https://ns.adobe.com/xdm/context/experienceevent",
      "https://ns.adobe.com/xdm/data/time-series"
  ],
  "meta:containerId": "tenant",
  "imsOrg": "{ORG_ID}",
  "meta:altId": "_{TENANT_ID}.schemas.d5cc04eb8d50190001287e4c869ebe67",
  "meta:xdmType": "object",
  "$id": "https://ns.adobe.com/{TENANT_ID}/schemas/d5cc04eb8d50190001287e4c869ebe67",
  "version": "1.0",
  "meta:resourceType": "schemas",
  "meta:registryMetadata": {
      "repo:createDate": 1552088461236,
      "repo:lastModifiedDate": 1552088470592,
      "xdm:createdClientId": "{CREATED_CLIENT}",
      "xdm:repositoryCreatedBy": "{CREATED_BY}"
  }
}
NOTE
Voor meer gedetailleerde informatie over PUT verzoeken om schema's, verwijs naar de gids van het schemaeindpunt.

Velden toevoegen met een PATCH-bewerking

U kunt een PATCH-aanvraag gebruiken om afzonderlijke velden aan een schema toe te voegen zonder andere velden te overschrijven. Het schema-register ondersteunt alle standaard JSON-patchbewerkingen, inclusief add , remove en replace . Voor meer informatie over Reparatie JSON, zie de API fundamentals gids.

API formaat

PATCH /tenant/schemas/{SCHEMA_ID}
Parameter
Beschrijving
{SCHEMA_ID}
De meta:altId of URL-gecodeerde $id van het schema dat u wilt herschrijven.

Verzoek

Met de volgende aanvraag wordt een nieuw object toegevoegd aan de array allOf van het schema en worden velden opgegeven die moeten worden toegevoegd.

curl -X PATCH \
  https://platform.adobe.io/data/foundation/schemaregistry/tenant/schemas/_{TENANT_ID}.schemas.d5cc04eb8d50190001287e4c869ebe67 \
  -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 '[
        {
          "op": "add",
          "path": "/allOf/-",
          "value":  {
            "$ref": "https://ns.adobe.com/experience/campaign/experienceevent-all",
            "meta:refProperty": [
              "/_experience/campaign/message/id",
              "/_experience/campaign/message/size",
              "/_experience/campaign/message/variant"
            ]
          }
        }
      ]'

Reactie

Een succesvolle reactie keert de details van het bijgewerkte schema terug.

{
  "title": "My Sample Schema",
  "description": "My Sample Description",
  "type": "object",
  "allOf": [
    {
      "$ref": "https://ns.adobe.com/xdm/context/experienceevent"
    },
    {
      "$ref": "https://ns.adobe.com/experience/campaign/experienceevent-all",
      "meta:refProperty": [
        "/_experience/campaign/message/id",
        "/_experience/campaign/message/size",
        "/_experience/campaign/message/variant"
      ]
    }
  ],
  "meta:class": "https://ns.adobe.com/xdm/context/experienceevent",
  "meta:abstract": false,
  "meta:extensible": false,
  "meta:extends": [
      "https://ns.adobe.com/xdm/context/experienceevent",
      "https://ns.adobe.com/xdm/data/time-series"
  ],
  "meta:containerId": "tenant",
  "imsOrg": "{ORG_ID}",
  "meta:altId": "_{TENANT_ID}.schemas.d5cc04eb8d50190001287e4c869ebe67",
  "meta:xdmType": "object",
  "$id": "https://ns.adobe.com/{TENANT_ID}/schemas/d5cc04eb8d50190001287e4c869ebe67",
  "version": "1.0",
  "meta:resourceType": "schemas",
  "meta:registryMetadata": {
      "repo:createDate": 1552088461236,
      "repo:lastModifiedDate": 1552088470592,
      "xdm:createdClientId": "{CREATED_CLIENT}",
      "xdm:repositoryCreatedBy": "{CREATED_BY}"
  }
}
NOTE
Voor meer gedetailleerde informatie over PATCH verzoeken om schema's, verwijs naar de gids van het schemaeindpunt.

Volgende stappen

Deze gids besprak hoe te om API vraag te gebruiken om individuele gebieden van een bestaande gebiedsgroep aan een schema toe te voegen. Voor details op hoe te om gelijkaardige op gebied-gebaseerde taken in Experience Platform uit te voeren UI, zie de gids op op gebied-gebaseerde werkschema's.

Voor meer informatie over de mogelijkheden van de Registratie API van het Schema, verwijs naar het API overzichtvoor een volledige lijst van eindpunten en processen.

recommendation-more-help
62e9ffd9-1c74-4cef-8f47-0d00af32fc07