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.
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.
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"
}
}
}
}
meta:enum
bevat, overschrijven de nieuwe waarden van het descriptorbestand de bestaande velden niet en worden deze toegevoegd:code language-json |
---|
|
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.
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.