Aanbevolen waarden beheren in de API

Voor om het even welk koordgebied in het Model van de Gegevens van de Ervaring (XDM), kunt u een opsomming bepalen die de waarden beperkt die het gebied aan een vooraf bepaalde reeks kan opnemen. Als u probeert gegevens in te voeren in een opsommingsveld en de waarde niet overeenkomt met een van de gedefinieerde waarden in de configuratie, wordt invoer geweigerd.

In tegenstelling tot opsommingen, beperkt het toevoegen van gesuggereerde waarden aan een koordgebied niet de waarden die het kan opnemen. In plaats daarvan, beïnvloeden de voorgestelde waarden welke vooraf bepaalde waarden in Segmentatie UIbeschikbaar zijn wanneer het omvatten van het koordgebied als attribuut.

NOTE
Er is een ongeveer vijf-minieme vertraging voor de bijgewerkte voorgestelde waarden van een gebied om in de Segmentatie UI worden weerspiegeld.

Deze gids behandelt hoe te om voorgestelde waarden te beheren gebruikend de Registratie API van het Schema. Voor stappen op hoe te om dit in het gebruikersinterface van Adobe Experience Platform te doen, zie de gids UI op aantallen en voorgestelde waarden.

Vereisten

Deze gids veronderstelt u met de elementen van schemacompositie in XDM vertrouwd bent en hoe te om de Registratie API van het Schema te gebruiken om middelen tot stand te brengen en uit te geven XDM. Raadpleeg de volgende documentatie als u een inleiding nodig hebt:

Het wordt ook sterk geadviseerd dat u de evolutieregels voor aantallen en gesuggereerde waardenherziet als u bestaande gebieden bijwerkt. Als u voorgestelde waarden voor schema's beheert die aan een unie deelnemen, zie de regels voor het samenvoegen van lijsten en voorgestelde waarden.

Samenstelling

In API, worden de beperkte waarden voor een enum gebied vertegenwoordigd door een enum serie, terwijl een meta:enum voorwerp vriendschappelijke vertoningsnamen voor die waarden verstrekt:

"exampleStringField": {
  "type": "string",
  "enum": [
    "value1",
    "value2",
    "value3"
  ],
  "meta:enum": {
    "value1": "Value 1",
    "value2": "Value 2",
    "value3": "Value 3"
  },
  "default": "value1"
}

Voor opsommingsvelden staat het schemaregister niet toe dat meta:enum wordt uitgebreid tot meer dan de waarden in enum , omdat pogingen om tekenreekswaarden buiten deze beperkingen in te voeren, geen validatie zouden doorstaan.

Alternatief, kunt u een koordgebied bepalen dat geen enum serie bevat en slechts het meta:enum voorwerp gebruikt om gesuggereerde waarden aan te duiden:

"exampleStringField": {
  "type": "string",
  "meta:enum": {
    "value1": "Value 1",
    "value2": "Value 2",
    "value3": "Value 3"
  },
  "default": "value1"
}

Aangezien de tekenreeks geen enum -array heeft om beperkingen te definiëren, kan de eigenschap meta:enum worden uitgebreid met nieuwe waarden.

Voorgestelde waarden toevoegen aan een standaardveld add-suggested-standard

Om meta:enum van een standaardkoordgebied uit te breiden, kunt u a vriendschappelijke naambeschrijvervoor het gebied in kwestie in een bepaald schema tot stand brengen.

NOTE
Voorgestelde waarden voor tekenreeksvelden kunnen alleen op schemaniveau worden toegevoegd. Met andere woorden, het uitbreiden van meta:enum van een standaardveld in één schema heeft geen invloed op andere schema's die hetzelfde standaardveld gebruiken.

Het volgende verzoek voegt gesuggereerde waarden aan het standaard eventType gebied (door de klasse XDM ExperienceEventwordt verstrekt) voor het schema toe dat onder sourceSchema wordt geïdentificeerd:

curl -X POST \
  https://platform.adobe.io/data/foundation/schemaregistry/tenant/descriptors \
  -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": "xdm:alternateDisplayInfo",
        "sourceSchema": "https://ns.adobe.com/{TENANT_ID}/schemas/fbc52b243d04b5d4f41eaa72a8ba58be",
        "sourceProperty": "/eventType",
        "title": {
            "en_us": "Enum Event Type"
        },
        "description": {
            "en_us": "Event type field with soft enum values"
        },
        "meta:enum": {
          "eventA": {
            "en_us": "Event Type A"
          },
          "eventB": {
            "en_us": "Event Type B"
          }
        }
      }'

Nadat de descriptor is toegepast, reageert de schemaregistratie met het volgende wanneer het schema wordt opgehaald (reactie afgebroken voor ruimte):

{
  "$id": "https://ns.adobe.com/{TENANT_ID}/schemas/fbc52b243d04b5d4f41eaa72a8ba58be",
  "title": "Example Schema",
  "properties": {
    "eventType": {
      "type":"string",
      "title": "Enum Event Type",
      "description": "Event type field with soft enum values.",
      "meta:enum": {
        "customEventA": "Custom Event Type A",
        "customEventB": "Custom Event Type B"
      }
    }
  }
}
NOTE
Als het standaardveld al waarden onder meta:enum bevat, overschrijven de nieuwe waarden van het descriptorbestand de bestaande velden niet en worden deze toegevoegd:
code language-json
"standardField": {
   "type":"string",
   "title": "Example standard enum field",
   "description": "Standard field with existing enum values.",
   "meta:enum": {
       "standardEventA": "Standard Event Type A",
       "standardEventB": "Standard Event Type B",
       "customEventA": "Custom Event Type A",
       "customEventB": "Custom Event Type B"
   }
}

Voorgestelde waarden voor een aangepast veld beheren suggested-custom

Als u de meta:enum van een aangepast veld wilt beheren, kunt u de bovenliggende klasse, veldgroep of het gegevenstype van het veld bijwerken via een PATCH-aanvraag.

WARNING
In tegenstelling tot standaardvelden heeft het bijwerken van de meta:enum van een aangepast veld invloed op alle andere schema's waarin dat veld wordt gebruikt. Als u geen veranderingen over schema's wilt verspreiden, denk in plaats daarvan na creërend een nieuwe douanemiddel:

Met de volgende aanvraag wordt de meta:enum van een veld voor een "loyaliteitsniveau" bijgewerkt dat door een aangepast gegevenstype wordt verschaft:

curl -X PATCH \
  https://platform.adobe.io/data/foundation/schemaregistry/tenant/datatypes/_{TENANT_ID}.datatypes.8779fd45d6e4eb074300023a439862bbba359b60d451627a \
  -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": "replace",
          "path": "/loyaltyLevel/meta:enum",
          "value": {
            "ultra-platinum": "Ultra Platinum",
            "platinum": "Platinum",
            "gold": "Gold",
            "silver": "Silver",
            "bronze": "Bronze"
          }
        }
      ]'

Na het toepassen van de verandering, antwoordt de Registratie van het Schema met het volgende wanneer het terugwinnen van het schema (reactie beknot voor ruimte):

{
  "$id": "https://ns.adobe.com/{TENANT_ID}/schemas/fbc52b243d04b5d4f41eaa72a8ba58be",
  "title": "Example Schema",
  "properties": {
    "loyaltyLevel": {
      "type":"string",
      "title": "Loyalty Level",
      "description": "The loyalty program tier that this customer qualifies for.",
      "meta:enum": {
        "ultra-platinum": "Ultra Platinum",
        "platinum": "Platinum",
        "gold": "Gold",
        "silver": "Silver",
        "bronze": "Bronze"
      }
    }
  }
}

Volgende stappen

Deze gids behandelde hoe te om voorgestelde waarden voor koordgebieden in de Registratie API van het Schema te beheren. Zie de gids op bepalend douanegebieden in APIvoor meer informatie over hoe te om verschillende gebiedstypes tot stand te brengen.

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