Een ad-hocschema maken
In specifieke omstandigheden kan het nodig zijn een Experience Data Model (XDM) schema met gebieden die namespaced voor gebruik slechts door één enkele dataset zijn. Dit wordt bedoeld als "ad-hoc"schema. Ad-hocschema's worden gebruikt in verschillende workflows voor gegevensinvoer voor Experience Platform, waaronder het opnemen van CSV-bestanden en het maken van bepaalde soorten bronverbindingen.
Dit document bevat algemene stappen voor het maken van een ad-hocschema met het Schema-register-API. Het is bedoeld om samen met andere Experience Platform zelfstudies die het maken van een ad-hocschema als onderdeel van hun workflow vereisen. Elk van die documenten verstrekt gedetailleerde informatie over hoe te om een ad-hocschema voor zijn specifiek gebruiksgeval behoorlijk te vormen.
Aan de slag
Deze zelfstudie vereist een goed begrip van Experience Data Model (XDM) System. Lees de volgende XDM-documentatie voordat u deze zelfstudie start:
- XDM System, overzicht: Een overzicht op hoog niveau van XDM en zijn implementatie in Experience Platform.
- Basisbeginselen van de schemacompositie: Een overzicht van de basiscomponenten van schema's XDM.
Lees voordat u deze zelfstudie start de ontwikkelaarsgids voor belangrijke informatie die u moet weten om met succes vraag aan te maken Schema Registry API. Dit omvat uw {TENANT_ID}
, het concept "containers" en de vereiste kopteksten voor het indienen van verzoeken (met speciale aandacht voor de Accept-koptekst en de mogelijke waarden ervan).
Een ad-hocklasse maken
Het gegevensgedrag van een schema XDM wordt bepaald door zijn onderliggende klasse. De eerste stap bij het maken van een ad-hocschema bestaat uit het maken van een klasse op basis van het adhoc
gedrag. Dit gebeurt door een verzoek van de POST aan /tenant/classes
eindpunt.
API-indeling
POST /tenant/classes
Verzoek
Met de volgende aanvraag wordt een nieuwe XDM-klasse gemaakt, geconfigureerd door de kenmerken die in de payload worden opgegeven. Door een $ref
eigenschap ingesteld op https://ns.adobe.com/xdm/data/adhoc
in de allOf
array, deze klasse overerft de adhoc
gedrag. In de aanvraag wordt ook een _adhoc
object, dat de aangepaste velden voor de klasse bevat.
_adhoc
variëren afhankelijk van het gebruiksgeval van het ad-hocschema. Raadpleeg de specifieke workflow in de juiste zelfstudie voor vereiste aangepaste velden op basis van het gebruiksgeval.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"
}
}
}
}
}
]
}'
$ref
https://ns.adobe.com/xdm/data/adhoc
.properties._adhoc
Antwoord
Als de reactie met succes is uitgevoerd, worden de details van de nieuwe klasse geretourneerd en wordt de naam properties._adhoc
de naam van objecten met een GUID die een systeem-geproduceerde, read-only uniek herkenningsteken voor de klasse is. De meta:datasetNamespace
wordt ook automatisch gegenereerd en opgenomen in de reactie.
{
"$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="
}
}
$id
Een ad-hocschema maken
Wanneer u een ad-hocklasse hebt gemaakt, kunt u een nieuw schema maken dat die klasse implementeert door een POST aan te vragen bij de /tenant/schemas
eindpunt.
API-indeling
POST /tenant/schemas
Verzoek
Met het volgende verzoek maakt u een nieuw schema en geeft u een verwijzing op ($ref
) aan de $id
van de eerder gemaakte ad-hocklasse in de payload.
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"
}
]
}'
Antwoord
Een succesvolle reactie keert de details van het onlangs gecreëerde schema, met inbegrip van zijn systeem-geproduceerde, read-only terug $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="
}
}
Het volledige ad-hocschema weergeven
Nadat u het ad-hocschema hebt gemaakt, kunt u een opzoekverzoek (GET) indienen om het schema in het uitgebreide formulier weer te geven. Dit wordt gedaan door de aangewezen Accept- kopbal in het verzoek van de GET te gebruiken, zoals hieronder aangetoond.
API-indeling
GET /tenant/schemas/{SCHEMA_ID}
{SCHEMA_ID}
$id
URI of meta:altId
van het ad-hocschema waartoe u toegang wilt hebben.Verzoek
In het volgende verzoek wordt de header Accepteren gebruikt application/vnd.adobe.xed-full+json; version=1
, die de uitgebreide vorm van het schema retourneert. Merk op dat wanneer het terugwinnen van een specifiek middel van Schema RegistryIn de Accept-header van het verzoek moet echter een belangrijke versie van de betreffende bron staan.
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}' \
Antwoord
Een succesvol antwoord retourneert de details van het schema, inclusief alle geneste velden onder 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="
}
}
Volgende stappen next-steps
Door deze zelfstudie te volgen, hebt u een nieuw ad-hocschema gemaakt. Als u naar dit document bent gebracht als onderdeel van een andere zelfstudie, kunt u nu de opdracht $id
van uw ad-hocschema om de workflow volgens de instructies te voltooien.
Voor meer informatie over het werken met de Schema Registry API, gelieve te verwijzen naar ontwikkelaarsgids.