CSV-sjabloon naar API-eindpunt voor schemaconversie
Gemaakt voor:
- Ontwikkelaar
Met het eindpunt /rpc/csv2schema
in de Schema Registry API kunt u automatisch een XDM-schema (Experience Data Model) maken met een CSV-bestand als sjabloon. Met behulp van dit eindpunt kunt u sjablonen maken voor het bulksgewijs importeren van schemavelden en voor handmatige API- of UI-bewerkingen.
Aan de slag
Het /rpc/csv2schema
eindpunt maakt deel uit van Schema Registry API. Alvorens verder te gaan, te herzien gelieve begonnen gidsvoor verbindingen aan verwante documentatie, een gids aan het lezen van de steekproefAPI vraag in dit document, en belangrijke informatie betreffende vereiste kopballen die nodig zijn om vraag aan om het even welke Adobe Experience Platform API met succes te maken.
Het /rpc/csv2schema
eindpunt maakt deel uit van de verre procedurevraag (RPCs) die door Schema Registry wordt gesteund. In tegenstelling tot andere eindpunten in de Schema Registry API, vereisen RPC-eindpunten geen extra kopteksten zoals Accept
of Content-Type
en gebruiken ze geen CONTAINER_ID
. In plaats daarvan moeten ze de naamruimte /rpc
gebruiken, zoals wordt getoond in de API-aanroepen hieronder.
CSV-bestandsvereisten
Als u van dit eindpunt gebruik wilt maken, moet u eerst een CSV-bestand maken met de juiste kolomkoppen en bijbehorende waarden. Sommige kolommen zijn vereist, terwijl de rest optioneel is. In de onderstaande tabel worden deze kolommen en hun rol in de schemaconstructie beschreven.
CSV-koppositie | CSV-kopnaam | Vereist/optioneel | Beschrijving |
---|---|---|---|
1 | isIgnored | Optioneel | Wanneer het veld is opgenomen en is ingesteld op true , wordt hiermee aangegeven dat het veld niet gereed is voor API-upload en moet worden genegeerd. |
2 | isCustom | Vereist | Hiermee wordt aangegeven of het veld een aangepast veld is. |
3 | fieldGroupId | Optioneel | De id van de veldgroep waaraan een aangepast veld moet worden gekoppeld. |
4 | fieldGroupName | (Zie beschrijving) | De naam van de veldgroep waaraan dit veld moet worden gekoppeld. Facultatief voor douanevelden die bestaande standaardgebieden niet uitbreiden. Als deze optie leeg blijft, wijst het systeem automatisch de naam toe. Vereist voor standaardgebieden of douanegebieden die standaardgebiedsgroepen uitbreiden, die wordt gebruikt om fieldGroupId te vragen. |
5 | fieldPath | Vereist | Het volledige XED-puntnotatiepad voor het veld. Als u alle velden uit een standaardveldgroep wilt opnemen (zoals aangegeven onder fieldGroupName ), stelt u de waarde in op ALL . |
6 | displayName | Optioneel | De titel of de vriendelijke weergavenaam voor het veld. Kan ook een alias voor de titel zijn als er een bestaat. |
7 | fieldDescription | Optioneel | Een beschrijving voor het veld. Kan ook een alias voor de beschrijving zijn als er een bestaat. |
8 | dataType | (Zie beschrijving) | Wijst op het basistype van gegevensvoor het gebied. Vereist voor alle aangepaste velden. Als dataType is ingesteld op object , moet properties of $ref ook voor dezelfde rij worden gedefinieerd, maar niet voor beide. |
9 | isRequired | Optioneel | Geeft aan of het veld verplicht is voor gegevensinvoer. |
10 | isArray | Optioneel | Geeft aan of het veld een array is van de aangegeven dataType . |
11 | isIdentity | Optioneel | Geeft aan of het veld een identiteitsveld is. |
12 | identityNamespace | Vereist als isIdentity true is | De identiteit namespacevoor het identiteitsgebied. |
13 | isPrimaryIdentity | Optioneel | Geeft aan of het veld de primaire identiteit voor het schema is. |
14 | minimum | Optioneel | (Alleen voor numerieke velden) De minimumwaarde voor het veld. |
15 | maximum | Optioneel | (Alleen voor numerieke velden) De maximumwaarde voor het veld. |
16 | enum | Optioneel | Een lijst met opsommingswaarden voor het veld, uitgedrukt als een array (bijvoorbeeld [value1,value2,value3] ). |
17 | stringPattern | Optioneel | (Alleen voor tekenreeksvelden) Een regex-patroon dat de tekenreekswaarde moet overeenkomen om de validatie tijdens het invoeren van gegevens door te geven. |
18 | format | Optioneel | (Alleen voor tekenreeksvelden) De indeling voor het tekenreeksveld. |
19 | minLength | Optioneel | (Alleen voor tekenreeksvelden) De minimumlengte van het tekenreeksveld. |
20 | maxLength | Optioneel | (Alleen voor tekenreeksvelden) De maximumlengte van het tekenreeksveld. |
21 | properties | (Zie beschrijving) | Vereist als dataType is ingesteld op object en $ref niet is gedefinieerd. Dit definieert de hoofdtekst van het object als een JSON-tekenreeks (bijvoorbeeld {"myField": {"type": "string"}} ). |
22 | $ref | (Zie beschrijving) | Vereist als dataType is ingesteld op object en properties niet is gedefinieerd. Hiermee wordt de $id van het object waarnaar wordt verwezen, gedefinieerd voor het objecttype (bijvoorbeeld https://ns.adobe.com/xdm/context/person ). |
23 | comment | Optioneel | Wanneer isIgnored is ingesteld op true , wordt deze kolom gebruikt om de headerinformatie van het schema op te geven. |
Verwijs naar het volgende malplaatje CSVom te bepalen hoe uw Csv- dossier zou moeten worden geformatteerd.
Een exportlading maken van een CSV-bestand
Nadat u de CSV-sjabloon hebt ingesteld, kunt u het bestand naar het /rpc/csv2schema
-eindpunt verzenden en het naar een exportlading omzetten.
API formaat
POST /rpc/csv2schema
Verzoek
De payload van de aanvraag moet formuliergegevens gebruiken als indeling. De vereiste formuliervelden worden hieronder weergegeven.
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."'
Eigenschap | Beschrijving |
---|---|
csv-file | Het pad naar de CSV-sjabloon die op uw lokale computer is opgeslagen. |
schema-class-id | $id van de XDM klassedat dit schema zal aanwenden. |
schema-name | Een weergavenaam voor het schema. |
schema-description | Een beschrijving voor het schema. |
Reactie
Een geslaagde reactie retourneert een exportlading die uit het CSV-bestand is gegenereerd. De payload heeft de vorm van een array en elk arrayitem is een object dat een afhankelijke XDM-component voor het schema vertegenwoordigt. Selecteer de onderstaande sectie om een volledig voorbeeld weer te geven van een exportlading die uit een CSV-bestand is gegenereerd.
[
{
"$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
}
]
De payload van het schema importeren
Na het produceren van de de uitvoerlading van het Csv- dossier, kunt u die lading naar het /rpc/import
eindpunt verzenden om het schema te produceren.
Zie de de gids van het de invoereindpuntvoor details op hoe te schema's van de uitvoerladingen produceren.