CSV-Vorlage zum Schema-Konversions-API-Endpunkt

Letzte Aktualisierung: 2023-05-10
  • Themen:
  • Schemas
    Weitere Informationen zu diesem Thema
  • Erstellt für:
  • Developer
    User
    Admin
    Leader

Die /rpc/csv2schema -Endpunkt im Schema Registry Mit der API können Sie automatisch ein Experience-Datenmodell (XDM)-Schema mithilfe einer CSV-Datei als Vorlage erstellen. Mithilfe dieses Endpunkts können Sie Vorlagen erstellen, um Schemafelder per Massenimport zu importieren und die manuelle API- oder UI-Arbeit zu reduzieren.

Erste Schritte

Die /rpc/csv2schema Endpunkt ist Teil der Schema Registry API. Bevor Sie fortfahren, lesen Sie bitte die Erste Schritte Links zur zugehörigen Dokumentation, eine Anleitung zum Lesen der Beispiel-API-Aufrufe in diesem Dokument und wichtige Informationen zu erforderlichen Kopfzeilen, die für das erfolgreiche Aufrufen von Adobe Experience Platform-APIs benötigt werden.

Die /rpc/csv2schema Endpunkt ist Teil der Remote-Prozeduraufrufe (RPCs), die von der Schema Registry. Im Gegensatz zu anderen Endpunkten im Schema Registry API-, RPC-Endpunkte erfordern keine zusätzlichen Kopfzeilen wie Accept oder Content-Typeund verwenden Sie keine CONTAINER_ID. Stattdessen müssen sie die /rpc -Namespace, wie in den API-Aufrufen unten dargestellt.

CSV-Dateianforderungen

Um diesen Endpunkt zu nutzen, müssen Sie zunächst eine CSV-Datei mit entsprechenden Spaltenüberschriften und entsprechenden Werten erstellen. Einige Spalten sind erforderlich, während der Rest optional ist. In der folgenden Tabelle werden diese Spalten und ihre Rolle bei der Schemaerstellung beschrieben.

CSV-Kopfzeilenposition CSV-Headername Erforderlich/Optional Beschreibung
1 isIgnored Optional Wenn eingeschlossen, setzen Sie auf truegibt an, dass das Feld nicht bereit für den API-Upload ist und ignoriert werden sollte.
2 isCustom Erforderlich Gibt an, ob das Feld ein benutzerdefiniertes Feld ist oder nicht.
3 fieldGroupId Optional Die ID der Feldergruppe, der ein benutzerdefiniertes Feld zugeordnet werden soll.
4 fieldGroupName (Siehe Beschreibung) Der Name der Feldergruppe, mit der dieses Feld verknüpft werden soll.

Optional für benutzerdefinierte Felder, die keine vorhandenen Standardfelder erweitern. Wenn das Feld leer gelassen wird, weist das System automatisch einen Namen zu.

Erforderlich für Standardfelder oder benutzerdefinierte Felder, die Standardfeldgruppen erweitern, die zum Abfragen der fieldGroupId.
5 fieldPath Erforderlich Der vollständige Pfad für die XED-Punktnotation für das Feld. So schließen Sie alle Felder aus einer Standardfeldgruppe ein (wie unter fieldGroupName), setzen Sie den Wert auf ALL.
6 displayName Optional Der Titel oder Anzeigename für das Feld. Kann auch ein Alias für den Titel sein, sofern vorhanden.
7 fieldDescription Optional Eine Beschreibung für das Feld. Kann auch ein Alias für die Beschreibung sein, sofern vorhanden.
8 dataType (Siehe Beschreibung) Gibt die Basistyp für das Feld. Erforderlich für alle benutzerdefinierten Felder.

Wenn dataType auf object, entweder properties oder $ref muss auch für dieselbe Zeile definiert werden, aber nicht für beide.
9 isRequired Optional Gibt an, ob das Feld für die Datenerfassung erforderlich ist.
10 isArray Optional Gibt an, ob das Feld ein Array von dataType.
11 isIdentity Optional Gibt an, ob das Feld ein Identitätsfeld ist.
12 identityNamespace Erforderlich, wenn isIdentity ist wahr Die Identitäts-Namespace für das Identitätsfeld.
13 isPrimaryIdentity Optional Gibt an, ob das Feld die primäre Identität für das Schema ist.
14 minimum Optional (Nur für numerische Felder) Der Mindestwert für das Feld.
15 maximum Optional (Nur für numerische Felder) Der Maximalwert für das Feld.
16 enum Optional Eine Liste von Enum-Werten für das Feld, ausgedrückt als Array (z. B. [value1,value2,value3]).
17 stringPattern Optional (Nur für Zeichenfolgenfelder) Ein Regex-Muster, mit dem der Zeichenfolgenwert übereinstimmen muss, um die Validierung während der Datenerfassung zu bestehen.
18 format Optional (Nur für Zeichenfolgenfelder) Das Format für das Zeichenfolgenfeld.
19 minLength Optional (Nur für Zeichenfolgenfelder) Die Mindestlänge des Zeichenfolgenfelds.
20 maxLength Optional (Nur für Zeichenfolgenfelder) Die maximale Länge des Zeichenfolgenfelds.
21 properties (Siehe Beschreibung) Erforderlich, wenn dataType auf object und $ref nicht definiert ist. Dadurch wird der Objekttext als JSON-Zeichenfolge definiert (z. B. {"myField": {"type": "string"}}).
22 $ref (Siehe Beschreibung) Erforderlich, wenn dataType auf object und properties nicht definiert ist. Dadurch wird die $id des referenzierten Objekts für den Objekttyp (z. B. https://ns.adobe.com/xdm/context/person).
23 comment Optional Wann isIgnored auf true, wird diese Spalte verwendet, um die Kopfzeileninformationen des Schemas anzugeben.

Siehe Folgendes CSV-Vorlage , um zu bestimmen, wie Ihre CSV-Datei formatiert werden soll.

Export-Payload aus einer CSV-Datei erstellen

Nachdem Sie Ihre CSV-Vorlage eingerichtet haben, können Sie die Datei an die /rpc/csv2schema -Endpunkt und konvertieren Sie ihn in eine Export-Payload.

API-Format

POST /rpc/csv2schema

Anfrage

Die Anfrage-Payload muss Formulardaten als Format verwenden. Die erforderlichen Formularfelder sind unten dargestellt.

curl -X POST \
  https://platform.adobe.io/data/foundation/schemaregistry/rpc/csv2schema \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {IMS_ORG}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}' \
  -F 'csv-file=@"/Users/userName/Documents/sample-csv-template.csv"' \
  -F 'schema-class-id="https://ns.adobe.com/xdm/context/profile"' \
  -F 'schema-name="Example Schema"' \
  -F 'schema-description="Example schema description."'
Eigenschaft Beschreibung
csv-file Der Pfad zur CSV-Vorlage, die auf Ihrem lokalen Computer gespeichert ist.
schema-class-id Die $id des XDM class dass dieses Schema verwendet.
schema-name Ein Anzeigename für das Schema.
schema-description Eine Beschreibung für das Schema.

Antwort

Eine erfolgreiche Antwort gibt eine Export-Payload zurück, die aus der CSV-Datei generiert wurde. Die Payload hat die Form eines Arrays, und jedes Array-Element ist ein Objekt, das eine abhängige XDM-Komponente für das Schema darstellt. Wählen Sie den folgenden Abschnitt aus, um ein vollständiges Beispiel einer Export-Payload anzuzeigen, die aus einer CSV-Datei generiert wurde.

 Beispiel für Antwort-Payload
[
    {
        "$id": "https://ns.adobe.com/ddgxdmint/mixins/68397e9293a6904b3006311fb46c9573a8aaad49780dd65a",
        "$schema": "http://json-schema.org/draft-06/schema#",
        "type": "object",
        "meta:xdmType": "object",
        "meta:resourceType": "mixins",
        "title": "Generated field group 68397e9293a6904b3006311fb46c9573a8aaad49780dd65a",
        "description": "Generated field group 68397e9293a6904b3006311fb46c9573a8aaad49780dd65a",
        "meta:intendedToExtend": [
            "https://ns.adobe.com/xdm/context/profile"
        ],
        "required": [
            "_ddgxdmint"
        ],
        "properties": {
            "_ddgxdmint": {
                "properties": {
                    "customField1": {
                        "type": "string",
                        "title": "my custom field1",
                        "description": "Sample custom field1"
                    },
                    "customField2": {
                        "properties": {
                            "customerField22": {
                                "type": "string",
                                "title": "my custom field22",
                                "description": "Sample custom field22"
                            }
                        },
                        "type": "object",
                        "required": [
                            "customerField22"
                        ]
                    },
                    "customField3": {
                        "type": "number",
                        "title": "my custom field3",
                        "description": "Sample custom field3",
                        "minimum": 0,
                        "maximum": 10
                    },
                    "customField4": {
                        "type": "string",
                        "title": "my custom field4",
                        "description": "Sample custom field4",
                        "enum": [
                            "one",
                            "two",
                            "three"
                        ]
                    },
                    "customField5": {
                        "type": "array",
                        "title": "my custom field5",
                        "description": "Sample custom field5",
                        "items": {
                            "type": "string"
                        }
                    },
                    "customField6": {
                        "type": "string",
                        "title": "my custom field6",
                        "description": "Sample custom field6",
                        "format": "date"
                    }
                },
                "type": "object",
                "required": [
                    "customField1",
                    "customField2"
                ]
            }
        }
    },
    {
        "$id": "https://ns.adobe.com/ddgxdmint/mixins/7d4edf1a4c2b8c97d31f9931a10618e0b7341cefc97edad6",
        "$schema": "http://json-schema.org/draft-06/schema#",
        "type": "object",
        "meta:xdmType": "object",
        "meta:resourceType": "mixins",
        "title": "SampleFieldGroup",
        "description": "Generated field group 7d4edf1a4c2b8c97d31f9931a10618e0b7341cefc97edad6",
        "meta:intendedToExtend": [
            "https://ns.adobe.com/xdm/context/profile"
        ],
        "properties": {
            "_ddgxdmint": {
                "properties": {
                    "customField7": {
                        "type": "object",
                        "title": "my custom field7",
                        "description": "Sample custom field7",
                        "properties": {
                            "myField": {
                                "type": "string"
                            }
                        }
                    },
                    "customField8": {
                        "type": "array",
                        "title": "my custom field8",
                        "description": "Sample custom field8",
                        "items": {
                            "type": "object",
                            "$ref": "https://ns.adobe.com/xdm/context/person"
                        }
                    }
                },
                "type": "object"
            }
        }
    },
    {
        "$id": "https://ns.adobe.com/ddgxdmint/mixins/6420020c79930a4c3aa7c9fd03b218e0e85c9a7d9990ecf",
        "$schema": "http://json-schema.org/draft-06/schema#",
        "type": "object",
        "meta:xdmType": "object",
        "meta:resourceType": "mixins",
        "title": "Demographic Details:Generated field group 6420020c79930a4c3aa7c9fd03b218e0e85c9a7d9990ecf",
        "description": "Generated field group 6420020c79930a4c3aa7c9fd03b218e0e85c9a7d9990ecf",
        "meta:intendedToExtend": [
            "https://ns.adobe.com/xdm/context/profile"
        ],
        "meta:extends": [
            "https://ns.adobe.com/xdm/context/profile-person-details"
        ],
        "allOf": [
            {
                "properties": {
                    "person": {
                        "properties": {
                            "name": {
                                "properties": {
                                    "_ddgxdmint": {
                                        "properties": {
                                            "nickName": {
                                                "type": "string"
                                            }
                                        },
                                        "type": "object",
                                        "required": [
                                            "nickName"
                                        ]
                                    }
                                },
                                "type": "object",
                                "required": [
                                    "_ddgxdmint"
                                ]
                            }
                        },
                        "type": "object",
                        "required": [
                            "name"
                        ]
                    }
                },
                "required": [
                    "person"
                ]
            },
            {
                "$ref": "https://ns.adobe.com/xdm/context/profile-person-details"
            }
        ]
    },
    {
        "$id": "https://ns.adobe.com/ddgxdmint/mixins/39e6bb291e5b9072878c5c80c0ff5a325df79385ed10d241",
        "$schema": "http://json-schema.org/draft-06/schema#",
        "type": "object",
        "meta:xdmType": "object",
        "meta:resourceType": "mixins",
        "title": "Loyalty Details:Generated field group 39e6bb291e5b9072878c5c80c0ff5a325df79385ed10d241",
        "description": "Generated field group 39e6bb291e5b9072878c5c80c0ff5a325df79385ed10d241",
        "meta:intendedToExtend": [
            "https://ns.adobe.com/xdm/context/profile"
        ],
        "meta:extends": [
            "https://ns.adobe.com/xdm/mixins/profile/profile-loyalty-details"
        ],
        "allOf": [
            {
                "properties": {
                    "loyalty": {
                        "properties": {
                            "_ddgxdmint": {
                                "properties": {
                                    "joinDate": {
                                        "type": "string"
                                    }
                                },
                                "type": "object"
                            }
                        },
                        "type": "object"
                    }
                }
            },
            {
                "$ref": "https://ns.adobe.com/xdm/mixins/profile/profile-loyalty-details"
            }
        ]
    },
    {
        "$id": "https://ns.adobe.com/ddgxdmint/schemas/632cb76723ce2fd3876385168c03eb5201c5997f3f367a2f",
        "$schema": "http://json-schema.org/draft-06/schema#",
        "type": "object",
        "meta:xdmType": "object",
        "meta:resourceType": "schemas",
        "title": "My Sample Schema",
        "description": "My Sample Schema",
        "meta:extends": [
            "https://ns.adobe.com/xdm/context/profile"
        ],
        "allOf": [
            {
                "$ref": "https://ns.adobe.com/xdm/context/profile"
            },
            {
                "$ref": "https://ns.adobe.com/ddgxdmint/mixins/68397e9293a6904b3006311fb46c9573a8aaad49780dd65a"
            },
            {
                "$ref": "https://ns.adobe.com/ddgxdmint/mixins/7d4edf1a4c2b8c97d31f9931a10618e0b7341cefc97edad6"
            },
            {
                "$ref": "https://ns.adobe.com/ddgxdmint/mixins/6420020c79930a4c3aa7c9fd03b218e0e85c9a7d9990ecf",
                "meta:refProperty": [
                    "/person/name/firstName",
                    "/person/name/lastName",
                    "/person/name/_ddgxdmint/nickName"
                ]
            },
            {
                "$ref": "https://ns.adobe.com/ddgxdmint/mixins/39e6bb291e5b9072878c5c80c0ff5a325df79385ed10d241"
            }
        ]
    },
    {
        "@type": "xdm:alternateDisplayInfo",
        "meta:resourceType": "descriptors",
        "xdm:sourceSchema": "https://ns.adobe.com/ddgxdmint/schemas/632cb76723ce2fd3876385168c03eb5201c5997f3f367a2f",
        "xdm:sourceVersion": 1,
        "xdm:sourceProperty": "/person/name/firstName",
        "xdm:title": {
            "en_us": "My first name"
        }
    },
    {
        "@type": "xdm:descriptorIdentity",
        "meta:resourceType": "descriptors",
        "xdm:sourceSchema": "https://ns.adobe.com/ddgxdmint/schemas/632cb76723ce2fd3876385168c03eb5201c5997f3f367a2f",
        "xdm:sourceVersion": 1,
        "xdm:sourceProperty": "/_ddgxdmint/customField1",
        "xdm:namespace": "email",
        "xdm:property": "xdm:code",
        "xdm:isPrimary": true
    }
]

Importieren der Schema-Payload

Nachdem Sie die Export-Payload aus der CSV-Datei generiert haben, können Sie diese Payload an die /rpc/import -Endpunkt zum Generieren des Schemas.

Siehe Import-Endpunkthandbuch für Details zum Generieren von Schemas aus Export-Payloads.

Auf dieser Seite