Aanbevolen waarden beheren in de API
Voor elk tekenreeksveld in het XDM (Experience Data Model) kunt u een enum dat de waarden die het veld kan invoeren, beperkt tot een vooraf gedefinieerde set. 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, toevoegen voorgestelde waarden aan een tekenreeksveld te koppelen, beperkt niet de waarden die het kan invoeren. De voorgestelde waarden hebben daarentegen invloed op de beschikbare vooraf gedefinieerde waarden in het dialoogvenster Segmenteringsinterface wanneer het tekenreeksveld wordt opgenomen als een kenmerk.
In deze handleiding wordt beschreven hoe u voorgestelde waarden kunt beheren met de Schema-register-API. Raadpleeg voor meer informatie over hoe u dit kunt doen in de gebruikersinterface van Adobe Experience Platform de UI-handleiding voor opsommingen 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:
U wordt ook ten zeerste aangeraden de evolutieregels voor nummers en voorgestelde waarden als u bestaande velden bijwerkt. Als u voorgestelde waarden voor schema's beheert die aan een unie deelnemen, zie regels voor het samenvoegen van opsommingen en voorgestelde waarden.
Samenstelling
In de API kunnen de beperkte waarden voor een enum veld wordt weergegeven door een enum
array, terwijl een meta:enum
-object biedt vriendelijke weergavenamen voor deze waarden:
"exampleStringField": {
"type": "string",
"enum": [
"value1",
"value2",
"value3"
],
"meta:enum": {
"value1": "Value 1",
"value2": "Value 2",
"value3": "Value 3"
},
"default": "value1"
}
Voor opsommingsvelden is het schemaregister niet toegestaan meta:enum
die verder gaan dan de in enum
, omdat pogingen om tekenreekswaarden buiten deze beperkingen in te voeren geen validatie zouden doorstaan.
U kunt ook een tekenreeksveld definiëren dat geen enum
-array en gebruikt alleen de meta:enum
aan te duiden object voorgestelde waarden:
"exampleStringField": {
"type": "string",
"meta:enum": {
"value1": "Value 1",
"value2": "Value 2",
"value3": "Value 3"
},
"default": "value1"
}
Aangezien de tekenreeks geen enum
array om beperkingen te definiëren, meta:enum
Deze eigenschap kan worden uitgebreid met nieuwe waarden.
Voorgestelde waarden toevoegen aan een standaardveld add-suggested-standard
De meta:enum
van een standaardtekenreeksveld kunt u een beschrijvingsbestand vriendelijke naam voor het betrokken veld in een bepaald schema.
meta:enum
van een standaardgebied in één schema beïnvloedt geen andere schema's die het zelfde standaardgebied gebruiken.In het volgende verzoek worden voorgestelde waarden aan de norm toegevoegd eventType
veld (verstrekt door de XDM ExperienceEvent, klasse) voor het schema dat onder sourceSchema
:
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
De nieuwe waarden van de descriptor overschrijven de bestaande velden niet en worden in plaats daarvan toegevoegd:code language-json |
---|
|
Voorgestelde waarden voor een aangepast veld beheren suggested-custom
Om het meta:enum
van een aangepast veld kunt u de bovenliggende klasse, veldgroep of het gegevenstype van het veld bijwerken via een PATCH-aanvraag.
meta:enum
van een aangepast veld beïnvloedt 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:De volgende aanvraag werkt de meta:enum
van een "loyaliteitsniveau"gebied dat door een type van douanegegevens wordt verstrekt:
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 handleiding op aangepaste velden in de API definiëren voor meer informatie over het maken van verschillende veldtypen.