Verwalten von vorgeschlagenen Werten in der API
Für jedes Zeichenfolgenfeld im Experience-Datenmodell (XDM) können Sie eine enum , wodurch die Werte, die das Feld erfassen kann, auf einen vordefinierten Satz beschränkt werden. Wenn Sie versuchen, Daten in ein Enum-Feld zu erfassen und der Wert mit keinem der in der Konfiguration definierten Werte übereinstimmt, wird die Aufnahme verweigert.
Fügen Sie im Gegensatz zu Auflistungen empfohlene Werte in ein Zeichenfolgenfeld eintragen, werden die Werte, die aufgenommen werden können, nicht eingeschränkt. Stattdessen wirken sich die vorgeschlagenen Werte darauf aus, welche vordefinierten Werte im Segmentierungsbenutzeroberfläche , wenn das Zeichenfolgenfeld als Attribut eingefügt wird.
In diesem Handbuch wird beschrieben, wie Sie empfohlene Werte mit dem Schema Registry-API. Anweisungen dazu finden Sie in der Benutzeroberfläche von Adobe Experience Platform im Abschnitt UI-Handbuch zu Auflistungen und empfohlenen Werten.
Voraussetzungen
In diesem Handbuch wird davon ausgegangen, dass Sie mit den Elementen der Schemakomposition in XDM und der Verwendung der Schema Registry-API zum Erstellen und Bearbeiten von XDM-Ressourcen vertraut sind. Wenn Sie eine Einführung benötigen, lesen Sie die folgende Dokumentation:
Es wird außerdem dringend empfohlen, die Evolutionsregeln für Auflistungen und empfohlene Werte wenn Sie vorhandene Felder aktualisieren. Wenn Sie empfohlene Werte für Schemas verwalten, die an einer Vereinigung teilnehmen, lesen Sie den Abschnitt Regeln zum Zusammenführen von Auflistungen und vorgeschlagenen Werten.
Komposition
In der API werden die eingeschränkten Werte für eine enum -Feld durch eine enum
Array, während eine meta:enum
-Objekt stellt Anzeigenamen für diese Werte bereit:
"exampleStringField": {
"type": "string",
"enum": [
"value1",
"value2",
"value3"
],
"meta:enum": {
"value1": "Value 1",
"value2": "Value 2",
"value3": "Value 3"
},
"default": "value1"
}
Bei Enum-Feldern erlaubt die Schema Registry nicht meta:enum
über die in enum
, da der Versuch, Zeichenfolgenwerte außerhalb dieser Begrenzungen zu erfassen, die Validierung nicht bestanden hat.
Alternativ können Sie ein Zeichenfolgenfeld definieren, das keine enum
-Array und verwendet nur die meta:enum
Objekt zum Markieren empfohlene Werte:
"exampleStringField": {
"type": "string",
"meta:enum": {
"value1": "Value 1",
"value2": "Value 2",
"value3": "Value 3"
},
"default": "value1"
}
Da die Zeichenfolge keine enum
Array zum Definieren von Begrenzungen, sein meta:enum
-Eigenschaft kann erweitert werden, um neue Werte einzuschließen.
Hinzufügen empfohlener Werte zu einem Standardfeld add-suggested-standard
So erweitern Sie die meta:enum
In einem Standard-Zeichenfolgenfeld können Sie eine Anzeigenamendeskriptor für das betreffende Feld in einem bestimmten Schema.
meta:enum
eines Standardfelds in einem Schema wirkt sich nicht auf andere Schemas aus, die dasselbe Standardfeld verwenden.Die folgende Anfrage fügt empfohlene Werte zum Standard hinzu eventType
-Feld (bereitgestellt von der XDM ExperienceEvent-Klasse) für das Schema, das unter 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"
}
}
}'
Nach Anwendung des Deskriptors antwortet die Schema Registry beim Abrufen des Schemas mit Folgendem (Antwort aus Platzgründen abgeschnitten):
{
"$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
, überschreiben die neuen Werte aus dem Deskriptor nicht die vorhandenen Felder und werden stattdessen hinzugefügt:code language-json |
---|
|
Verwalten von vorgeschlagenen Werten für ein benutzerdefiniertes Feld suggested-custom
So verwalten Sie die meta:enum
eines benutzerdefinierten Felds können Sie die übergeordnete Klasse, Feldergruppe oder den Datentyp des Felds über eine PATCH-Anfrage aktualisieren.
meta:enum
eines benutzerdefinierten Felds wirkt sich auf alle anderen Schemas aus, die dieses Feld verwenden. Wenn Änderungen nicht über Schemata hinweg propagiert werden sollen, sollten Sie stattdessen eine neue benutzerdefinierte Ressource erstellen:Die folgende Anfrage aktualisiert die meta:enum
eines von einem benutzerdefinierten Datentyp bereitgestellten Felds "Treuestufe":
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"
}
}
]'
Nach der Anwendung der Änderung antwortet die Schema Registry beim Abrufen des Schemas mit Folgendem (Antwort aus Platzgründen abgeschnitten):
{
"$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"
}
}
}
}
Nächste Schritte
In diesem Handbuch wurde beschrieben, wie Sie empfohlene Werte für Zeichenfolgenfelder in der Schema Registry-API verwalten. Siehe Handbuch unter Definieren benutzerdefinierter Felder in der API für weitere Informationen zum Erstellen verschiedener Feldtypen.