Under särskilda omständigheter kan det vara nödvändigt att skapa en Experience Data Model (XDM)-schema med fält som bara namnges av en enda datauppsättning. Detta kallas för ett ad hoc-schema. Ad hoc-scheman används i olika arbetsflöden för dataöverföring för Experience Platform, inklusive inhämtning av CSV-filer och skapande av vissa typer av källanslutningar.
Det här dokumentet innehåller allmänna steg för att skapa ett ad hoc-schema med API för schemaregister. Den är avsedd att användas tillsammans med andra Experience Platform självstudiekurser som kräver att du skapar ett ad hoc-schema som en del av arbetsflödet. Var och en av dessa dokument innehåller detaljerad information om hur man konfigurerar ett ad hoc-schema för sitt specifika användningsfall.
Den här självstudiekursen kräver en fungerande förståelse av Experience Data Model (XDM) System. Läs följande XDM-dokumentation innan du startar den här självstudiekursen:
Innan du startar den här självstudiekursen bör du gå igenom utvecklarhandbok för viktig information som du behöver känna till för att kunna ringa Schema Registry API. Detta inkluderar {TENANT_ID}
, begreppet"behållare" och de rubriker som krävs för att göra en begäran (med särskild uppmärksamhet på rubriken Godkänn och dess möjliga värden).
Databeteendet för ett XDM-schema bestäms av dess underliggande klass. Det första steget i att skapa ett ad hoc-schema är att skapa en klass baserad på adhoc
beteende. Detta gör du genom att göra en POST-förfrågan till /tenant/classes
slutpunkt.
API-format
POST /tenant/classes
Begäran
Följande begäran skapar en ny XDM-klass som konfigurerats med attributen som anges i nyttolasten. Genom att ange en $ref
egenskap inställd på https://ns.adobe.com/xdm/data/adhoc
i allOf
arrayen ärver den här klassen adhoc
beteende. Begäran definierar också en _adhoc
-objektet, som innehåller anpassade fält för klassen.
De anpassade fält som definieras under _adhoc
varierar beroende på hur ad hoc-schemat används. Se det specifika arbetsflödet i rätt självstudiekurs för obligatoriska anpassade fält baserat på användningsfall.
curl -X POST \
https://platform.adobe.io/data/foundation/schemaregistry/tenant/classes \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '{
"title":"New ad-hoc class",
"description": "New ad-hoc class description",
"type":"object",
"allOf": [
{
"$ref":"https://ns.adobe.com/xdm/data/adhoc"
},
{
"properties": {
"_adhoc": {
"type":"object",
"properties": {
"field1": {
"type":"string"
},
"field2": {
"type":"string"
}
}
}
}
}
]
}'
Egenskap | Beskrivning |
---|---|
$ref |
Databeteendet för den nya klassen. För ad hoc-klasser måste det här värdet anges till https://ns.adobe.com/xdm/data/adhoc . |
properties._adhoc |
Ett objekt som innehåller anpassade fält för klassen, uttryckt som nyckelvärdepar med fältnamn och datatyper. |
Svar
Ett godkänt svar returnerar informationen om den nya klassen och ersätter properties._adhoc
objektets namn med ett GUID som är en systemgenererad, skrivskyddad unik identifierare för klassen. The meta:datasetNamespace
-attribut genereras också automatiskt och inkluderas i svaret.
{
"$id": "https://ns.adobe.com/{TENANT_ID}/classes/6395cbd58812a6d64c4e5344f7b9120f",
"meta:altId": "_{TENANT_ID}.classes.6395cbd58812a6d64c4e5344f7b9120f",
"meta:resourceType": "classes",
"version": "1.0",
"title": "New Class",
"description": "New class description",
"type": "object",
"allOf": [
{
"$ref": "https://ns.adobe.com/xdm/data/adhoc"
},
{
"properties": {
"_6395cbd58812a6d64c4e5344f7b9120f": {
"type": "object",
"properties": {
"field1": {
"type": "string",
"meta:xdmType": "string"
},
"field2": {
"type": "string",
"meta:xdmType": "string"
}
},
"meta:xdmType": "object"
}
},
"type": "object",
"meta:xdmType": "object"
}
],
"meta:abstract": true,
"meta:extensible": true,
"meta:extends": [
"https://ns.adobe.com/xdm/data/adhoc"
],
"meta:containerId": "tenant",
"meta:datasetNamespace": "_6395cbd58812a6d64c4e5344f7b9120f",
"imsOrg": "{ORG_ID}",
"meta:xdmType": "object",
"meta:registryMetadata": {
"repo:createdDate": 1557527784822,
"repo:lastModifiedDate": 1557527784822,
"xdm:createdClientId": "{CREATED_CLIENT}",
"xdm:lastModifiedClientId": "{MODIFIED_CLIENT}",
"eTag": "Jggrlh4PQdZUvDUhQHXKx38iTQo="
}
}
Egenskap | Beskrivning |
---|---|
$id |
En URI som fungerar som en skrivskyddad, systemgenererad unik identifierare för den nya ad hoc-klassen. Det här värdet används i nästa steg när du skapar ett ad hoc-schema. |
När du har skapat en ad hoc-klass kan du skapa ett nytt schema som implementerar den klassen genom att göra en begäran om POST till /tenant/schemas
slutpunkt.
API-format
POST /tenant/schemas
Begäran
Följande begäran skapar ett nytt schema som innehåller en referens ($ref
) till $id
av den tidigare skapade ad hoc-klassen i dess nyttolast.
curl -X POST \
https://platform.adobe.io/data/foundation/schemaregistry/tenant/schemas \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: application/json' \
-H 'x-api-key: {API_KEY}' \
-H 'x-gw-ims-org-id: {ORG_ID}' \
-H 'x-sandbox-name: {SANDBOX_NAME}' \
-d '{
"title":"New Schema",
"description": "New schema description.",
"type":"object",
"allOf": [
{
"$ref":"https://ns.adobe.com/{TENANT_ID}/classes/6395cbd58812a6d64c4e5344f7b9120f"
}
]
}'
Svar
Ett lyckat svar returnerar information om det nyligen skapade schemat, inklusive dess systemgenererade, skrivskyddade $id
.
{
"$id": "https://ns.adobe.com/{TENANT_ID}/schemas/26f6833e55db1dd8308aa07a64f2042d",
"meta:altId": "_{TENANT_ID}.schemas.26f6833e55db1dd8308aa07a64f2042d",
"meta:resourceType": "schemas",
"version": "1.0",
"title": "New Schema",
"description": "New schema description.",
"type": "object",
"allOf": [
{
"$ref": "https://ns.adobe.com/{TENANT_ID}/classes/6395cbd58812a6d64c4e5344f7b9120f"
}
],
"meta:datasetNamespace": "_6395cbd58812a6d64c4e5344f7b9120f",
"meta:class": "https://ns.adobe.com/{TENANT_ID}/classes/6395cbd58812a6d64c4e5344f7b9120f",
"meta:abstract": false,
"meta:extensible": false,
"meta:extends": [
"https://ns.adobe.com/{TENANT_ID}/classes/6395cbd58812a6d64c4e5344f7b9120f",
"https://ns.adobe.com/xdm/data/adhoc"
],
"meta:containerId": "tenant",
"imsOrg": "{ORG_ID}",
"meta:xdmType": "object",
"meta:registryMetadata": {
"repo:createdDate": 1557528570542,
"repo:lastModifiedDate": 1557528570542,
"xdm:createdClientId": "{CREATED_CLIENT}",
"xdm:lastModifiedClientId": "{MODIFIED_CLIENT}",
"eTag": "Jggrlh4PQdZUvDUhQHXKx38iTQo="
}
}
Det här steget är valfritt. Om du inte vill inspektera fältstrukturen i ditt ad hoc-schema kan du hoppa till nästa steg i slutet av kursen.
När ad hoc-schemat har skapats kan du göra en sökning (GET)-begäran för att visa schemat i dess utökade form. Detta görs genom att använda rätt Accept-huvud i GET-begäran, vilket visas nedan.
API-format
GET /tenant/schemas/{SCHEMA_ID}
Parameter | Beskrivning |
---|---|
{SCHEMA_ID} |
URL-kodad $id URI eller meta:altId för det ad hoc-schema som du vill komma åt. |
Begäran
Följande begäran använder huvudet Godkänn application/vnd.adobe.xed-full+json; version=1
, som returnerar den utökade formen av schemat. Observera att när du hämtar en specifik resurs från Schema Registry, måste begärans Accept-huvud innehålla en större version av resursen i fråga.
curl -X GET \
https://platform.adobe.io/data/foundation/schemaregistry/tenant/schemas/_{TENANT_ID}.schemas.26f6833e55db1dd8308aa07a64f2042d \
-H 'Accept: application/vnd.adobe.xed-full+json; version=1' \
-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}' \
Svar
Ett godkänt svar returnerar informationen om schemat, inklusive alla fält som är kapslade under properties
.
{
"$id": "https://ns.adobe.com/{TENANT_ID}/schemas/26f6833e55db1dd8308aa07a64f2042d",
"meta:altId": "_{TENANT_ID}.schemas.26f6833e55db1dd8308aa07a64f2042d",
"meta:resourceType": "schemas",
"version": "1.0",
"title": "New Schema",
"description": "New schema description.",
"type": "object",
"meta:datasetNamespace": "_6395cbd58812a6d64c4e5344f7b9120f",
"meta:class": "https://ns.adobe.com/{TENANT_ID}/classes/6395cbd58812a6d64c4e5344f7b9120f",
"meta:abstract": false,
"meta:extensible": false,
"meta:extends": [
"https://ns.adobe.com/{TENANT_ID}/classes/6395cbd58812a6d64c4e5344f7b9120f",
"https://ns.adobe.com/xdm/data/adhoc"
],
"meta:containerId": "tenant",
"imsOrg": "{ORG_ID}",
"meta:xdmType": "object",
"properties": {
"_6395cbd58812a6d64c4e5344f7b9120f": {
"type": "object",
"meta:xdmType": "object",
"properties": {
"field1": {
"type": "string",
"meta:xdmType": "string"
},
"field2": {
"type": "string",
"meta:xdmType": "string"
}
}
}
},
"meta:registryMetadata": {
"repo:createdDate": 1557528570542,
"repo:lastModifiedDate": 1557528570542,
"xdm:createdClientId": "{CREATED_CLIENT}",
"xdm:lastModifiedClientId": "{MODIFIED_CLIENT}",
"eTag": "bTogM1ON2LO/F7rlcc1iOWmNVy0="
}
}
Genom att följa den här självstudiekursen har du skapat ett nytt ad hoc-schema. Om du kommer till det här dokumentet som en del av en annan självstudiekurs kan du nu använda $id
av ditt ad hoc-schema för att slutföra arbetsflödet enligt anvisningarna.
Mer information om hur du arbetar med Schema Registry API, se utvecklarhandbok.