Schemas, eindpunt
Een schema kan worden beschouwd als de blauwdruk voor de gegevens die u in Adobe Experience Platform wilt invoeren. Elk schema bestaat uit een klasse en nul of meer groepen schemavelden. Met het eindpunt /schemas
in de Schema Registry API kunt u schema's programmatisch beheren binnen uw ervaringstoepassing.
Aan de slag
Het API eindpunt dat in deze gids wordt gebruikt 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 welk Experience Platform API met succes te maken.
Een lijst met schema's ophalen list
U kunt alle schema's weergeven onder de container global
of tenant
door een aanvraag voor een GET in te dienen bij respectievelijk /global/schemas
of /tenant/schemas
.
API formaat
GET /{CONTAINER_ID}/schemas?{QUERY_PARAMS}
{CONTAINER_ID}
global
voor schema's die zijn gemaakt met een Adobe of tenant
voor schema's die eigendom zijn van uw organisatie.{QUERY_PARAMS}
Verzoek
Met de volgende aanvraag wordt een lijst met schema's opgehaald uit de container tenant
. Hierbij wordt een orderby
query-parameter gebruikt om de resultaten op hun title
-kenmerk te sorteren.
curl -X GET \
https://platform.adobe.io/data/foundation/schemaregistry/tenant/schemas?orderby=title \
-H 'Accept: application/vnd.adobe.xed-id+json' \
-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}'
De antwoordindeling is afhankelijk van de header Accept
die in de aanvraag wordt verzonden. De volgende Accept
kopteksten zijn beschikbaar voor aanbiedingsschema's:
Accept
headerapplication/vnd.adobe.xed-id+json
application/vnd.adobe.xed+json
$ref
en allOf
inbegrepen. (Limiet: 300)Reactie
In de bovenstaande aanvraag is de header application/vnd.adobe.xed-id+json
Accept
gebruikt en daarom bevat het antwoord alleen de kenmerken title
, $id
, meta:altId
en version
voor elk schema. Als u de andere Accept
header (application/vnd.adobe.xed+json
) gebruikt, worden alle kenmerken van elk schema geretourneerd. Selecteer de juiste Accept
header, afhankelijk van de informatie die u in uw reactie nodig hebt.
{
"results": [
{
"$id": "https://ns.adobe.com/{TENANT_ID}/schemas/0238be93d3e7a06aec5e0655955901ec",
"meta:altId": "_{TENANT_ID}.schemas.0238be93d3e7a06aec5e0655955901ec",
"version": "1.4",
"title": "Hotels"
},
{
"$id": "https://ns.adobe.com/{TENANT_ID}/schemas/0ef4ce0d390f0809fad490802f53d30b",
"meta:altId": "_{TENANT_ID}.schemas.0ef4ce0d390f0809fad490802f53d30b",
"version": "1.0",
"title": "Loyalty Members"
}
],
"_page": {
"orderby": "title",
"next": null,
"count": 2
},
"_links": {
"next": null,
"global_schemas": {
"href": "https://platform.adobe.io/data/foundation/schemaregistry/global/schemas"
}
}
}
Een schema opzoeken lookup
U kunt een specifiek schema opzoeken door een verzoek van de GET te doen dat identiteitskaart van het schema in de weg omvat.
API formaat
GET /{CONTAINER_ID}/schemas/{SCHEMA_ID}
{CONTAINER_ID}
global
voor een schema dat is gemaakt met een Adobe of tenant
voor een schema dat eigendom is van uw organisatie.{SCHEMA_ID}
meta:altId
of URL-gecodeerde $id
van het schema dat u wilt opzoeken.Verzoek
Met de volgende aanvraag wordt een schema opgehaald dat door de meta:altId
-waarde in het pad wordt opgegeven.
curl -X GET \
https://platform.adobe.io/data/foundation/schemaregistry/tenant/schemas/_{TENANT_ID}.schemas.f579a0b5f992c69458ea408ec36571f7da9de15901bab116 \
-H 'Accept: application/vnd.adobe.xed+json' \
-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}'
De antwoordindeling is afhankelijk van de header Accept
die in de aanvraag wordt verzonden. Voor alle opzoekverzoeken moet een version
worden opgenomen in de Accept
-koptekst. De volgende Accept
headers zijn beschikbaar:
Accept
headerapplication/vnd.adobe.xed+json; version=1
$ref
en allOf
heeft Raw titels en beschrijvingen.application/vnd.adobe.xed-full+json; version=1
$ref
en allOf
resolve, heeft titels en beschrijvingen.application/vnd.adobe.xed-notext+json; version=1
$ref
en allOf
, geen titels of beschrijvingen.application/vnd.adobe.xed-full-notext+json; version=1
$ref
en allOf
opgelost, geen titels of beschrijvingen.application/vnd.adobe.xed-full-desc+json; version=1
$ref
en allOf
opgelost, inclusief beschrijvingen.application/vnd.adobe.xed-deprecatefield+json; version=1
$ref
en allOf
resolve, heeft titels en beschrijvingen. Vervangen velden worden aangegeven met een meta:status
-kenmerk van deprecated
.Reactie
Een succesvolle reactie keert de details van het schema terug. Welke velden worden geretourneerd, is afhankelijk van de header Accept
die in de aanvraag wordt verzonden. Experimenteer met verschillende kopteksten van Accept
om de reacties te vergelijken en te bepalen welke kopbal het beste voor uw gebruiksgeval is.
{
"$id": "https://ns.adobe.com/{TENANT_ID}/schemas/20af3f1d4b175f27ba59529d1b51a0c79fc25df454117c80",
"meta:altId": "_{TENANT_ID}.schemas.20af3f1d4b175f27ba59529d1b51a0c79fc25df454117c80",
"meta:resourceType": "schemas",
"version": "1.1",
"title": "Example schema",
"type": "object",
"description": "An example schema created within the tenant container.",
"allOf": [
{
"$ref": "https://ns.adobe.com/xdm/context/profile",
"type": "object",
"meta:xdmType": "object"
},
{
"$ref": "https://ns.adobe.com/{TENANT_ID}/mixins/443fe51457047d958f4a97853e64e0eca93ef34d7990583b",
"type": "object",
"meta:xdmType": "object"
}
],
"imsOrg": "{ORG_ID}",
"meta:extensible": false,
"meta:abstract": false,
"meta:extends": [
"https://ns.adobe.com/{TENANT_ID}/mixins/443fe51457047d958f4a97853e64e0eca93ef34d7990583b",
"https://ns.adobe.com/xdm/common/auditable",
"https://ns.adobe.com/xdm/data/record",
"https://ns.adobe.com/xdm/context/profile"
],
"meta:xdmType": "object",
"meta:registryMetadata": {
"repo:createdDate": 1602872911226,
"repo:lastModifiedDate": 1603381419889,
"xdm:createdClientId": "{CLIENT_ID}",
"xdm:lastModifiedClientId": "{CLIENT_ID}",
"xdm:createdUserId": "{USER_ID}",
"xdm:lastModifiedUserId": "{USER_ID}",
"eTag": "84b4da79b7445a4bf1c59269e718065effddb983c492f48e223d49c049c6d589",
"meta:globalLibVersion": "1.15.4"
},
"meta:class": "https://ns.adobe.com/xdm/context/profile",
"meta:containerId": "tenant",
"meta:sandboxId": "ff0f6870-c46d-11e9-8ca3-036939a64204",
"meta:sandboxType": "production",
"meta:tenantNamespace": "_{TENANT_ID}"
}
Een schema maken create
Het proces van de schemacompositie begint door een klasse toe te wijzen. De klasse definieert de belangrijkste gedragsaspecten van de gegevens (record- of tijdreeks) en de minimale velden die vereist zijn om de gegevens te beschrijven die worden ingevoerd.
API formaat
POST /tenant/schemas
Verzoek
De aanvraag moet een allOf
-kenmerk bevatten dat naar de $id
van een klasse verwijst. Dit attribuut bepaalt de "basisklasse"die het schema zal uitvoeren. In dit voorbeeld is de basisklasse een klasse "Eigenschapinformatie" die eerder is gemaakt.
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":"Property Information",
"description": "Property-related information.",
"type": "object",
"allOf": [
{
"$ref": "https://ns.adobe.com/{TENANT_ID}/classes/19e1d8b5098a7a76e2c10a81cbc99590"
}
]
}'
allOf
$ref
) waarvan de waarde de $id
vertegenwoordigt van de klasse of veldgroep die het nieuwe schema zal implementeren. Er moet één klasse worden opgegeven, met nul of meer extra veldgroepen. In het bovenstaande voorbeeld is het ene object in de array allOf
de klasse van het schema.Reactie
Een succesvol antwoord retourneert HTTP-status 201 (Gemaakt) en een lading die de details bevat van het nieuwe schema, inclusief $id
, meta:altId
en version
. Deze waarden zijn alleen-lezen en worden toegewezen door de Schema Registry .
{
"title": "Property Information",
"description": "Property-related information.",
"type": "object",
"allOf": [
{
"$ref": "https://ns.adobe.com/{TENANT_ID}/classes/19e1d8b5098a7a76e2c10a81cbc99590"
}
],
"meta:class": "https://ns.adobe.com/{TENANT_ID}/classes/19e1d8b5098a7a76e2c10a81cbc99590",
"meta:abstract": false,
"meta:extensible": false,
"meta:extends": [
"https://ns.adobe.com/{TENANT_ID}/classes/19e1d8b5098a7a76e2c10a81cbc99590",
"https://ns.adobe.com/xdm/data/record"
],
"meta:containerId": "tenant",
"imsOrg": "{ORG_ID}",
"meta:altId": "_{TENANT_ID}.schemas.d5cc04eb8d50190001287e4c869ebe67",
"meta:xdmType": "object",
"$id": "https://ns.adobe.com/{TENANT_ID}/schemas/d5cc04eb8d50190001287e4c869ebe67",
"version": "1.0",
"meta:resourceType": "schemas",
"meta:registryMetadata": {
"repo:createDate": 1552088461236,
"repo:lastModifiedDate": 1552088461236,
"xdm:createdClientId": "{CREATED_CLIENT}",
"xdm:repositoryCreatedBy": "{CREATED_BY}"
}
}
Het uitvoeren van een verzoek van de GET aan lijst alle schema'sin de huurderscontainer zou nu het nieuwe schema omvatten. U kunt a raadpleging (GET) verzoekuitvoeren gebruikend URL-Gecodeerde $id
URI om het nieuwe schema direct te bekijken.
Om extra gebieden aan een schema toe te voegen, kunt u de verrichting van de a PATCHuitvoeren om gebiedsgroepen aan de 2} en meta:extends
series van het schema toe te voegen.allOf
Een schema bijwerken put
U kunt een volledig schema door een verrichting van de PUT vervangen, hoofdzakelijk herschrijvend het middel. Wanneer het bijwerken van een schema door een verzoek van de PUT, moet het lichaam alle gebieden omvatten die zouden worden vereist wanneer creërend een nieuw schemain een verzoek van de POST.
API formaat
PUT /tenant/schemas/{SCHEMA_ID}
{SCHEMA_ID}
meta:altId
of URL-gecodeerde $id
van het schema dat u opnieuw wilt schrijven.Verzoek
De volgende aanvraag vervangt een bestaand schema door de kenmerken title
, description
en allOf
ervan te wijzigen.
curl -X PUT \
https://platform.adobe.io/data/foundation/schemaregistry/tenant/schemas/_{TENANT_ID}.schemas.d5cc04eb8d50190001287e4c869ebe67 \
-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":"Commercial Property Information",
"description": "Information related to commercial properties.",
"type": "object",
"allOf": [
{
"$ref": "https://ns.adobe.com/{TENANT_ID}/classes/01b7b1745e8ac4ed1e8784ec91b6afa7"
}
]
}'
Reactie
Een succesvolle reactie keert de details van het bijgewerkte schema terug.
{
"title":"Commercial Property Information",
"description": "Information related to commercial properties.",
"type": "object",
"allOf": [
{
"$ref": "https://ns.adobe.com/{TENANT_ID}/classes/01b7b1745e8ac4ed1e8784ec91b6afa7"
}
],
"meta:class": "https://ns.adobe.com/{TENANT_ID}/classes/01b7b1745e8ac4ed1e8784ec91b6afa7",
"meta:abstract": false,
"meta:extensible": false,
"meta:extends": [
"https://ns.adobe.com/{TENANT_ID}/classes/01b7b1745e8ac4ed1e8784ec91b6afa7",
"https://ns.adobe.com/xdm/data/record"
],
"meta:containerId": "tenant",
"imsOrg": "{ORG_ID}",
"meta:altId": "_{TENANT_ID}.schemas.d5cc04eb8d50190001287e4c869ebe67",
"meta:xdmType": "object",
"$id": "https://ns.adobe.com/{TENANT_ID}/schemas/d5cc04eb8d50190001287e4c869ebe67",
"version": "1.0",
"meta:resourceType": "schemas",
"meta:registryMetadata": {
"repo:createDate": 1552088461236,
"repo:lastModifiedDate": 1552088470592,
"xdm:createdClientId": "{CREATED_CLIENT}",
"xdm:repositoryCreatedBy": "{CREATED_BY}"
}
}
Een gedeelte van een schema bijwerken patch
U kunt een gedeelte van een schema bijwerken door een verzoek van PATCH te gebruiken. Schema Registry ondersteunt alle standaard JSON-patchbewerkingen, inclusief add
, remove
en replace
. Voor meer informatie over Reparatie JSON, zie de API fundamentals gids.
Een van de meest gangbare PATCH-bewerkingen bestaat uit het toevoegen van eerder gedefinieerde veldgroepen aan een schema, zoals in het onderstaande voorbeeld wordt getoond.
API formaat
PATCH /tenant/schemas/{SCHEMA_ID}
{SCHEMA_ID}
$id
URI of meta:altId
van het schema dat u wilt bijwerken.Verzoek
In de onderstaande voorbeeldaanvraag wordt een nieuwe veldgroep toegevoegd aan een schema door de waarde $id
van die veldgroep toe te voegen aan de arrays meta:extends
en allOf
.
De aanvraaginstantie heeft de vorm van een array, waarbij elk vermeld object een specifieke wijziging in een afzonderlijk veld vertegenwoordigt. Elk voorwerp omvat uit te voeren verrichting (op
), welk gebied de verrichting zou moeten worden uitgevoerd (path
), en welke informatie in die verrichting (value
) zou moeten worden omvat.
curl -X PATCH\
https://platform.adobe.io/data/foundation/schemaregistry/tenant/schemas/_{TENANT_ID}.schemas.d5cc04eb8d50190001287e4c869ebe67 \
-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": "add",
"path": "/meta:extends/-",
"value": "https://ns.adobe.com/{TENANT_ID}/mixins/e49cbb2eec33618f686b8344b4597ecf"
},
{
"op": "add",
"path": "/allOf/-",
"value": {
"$ref": "https://ns.adobe.com/{TENANT_ID}/mixins/e49cbb2eec33618f686b8344b4597ecf"
}
}
]'
Reactie
De reactie toont aan dat beide bewerkingen met succes zijn uitgevoerd. De veldgroep $id
is toegevoegd aan de array meta:extends
en een verwijzing ( $ref
) naar de veldgroep $id
wordt nu weergegeven in de array allOf
.
{
"title": "Property Information",
"description": "Property-related information.",
"type": "object",
"allOf": [
{
"$ref": "https://ns.adobe.com/{TENANT_ID}/classes/19e1d8b5098a7a76e2c10a81cbc99590"
},
{
"$ref": "https://ns.adobe.com/{TENANT_ID}/mixins/e49cbb2eec33618f686b8344b4597ecf"
}
],
"meta:class": "https://ns.adobe.com/{TENANT_ID}/classes/19e1d8b5098a7a76e2c10a81cbc99590",
"meta:abstract": false,
"meta:extensible": false,
"meta:extends": [
"https://ns.adobe.com/{TENANT_ID}/classes/19e1d8b5098a7a76e2c10a81cbc99590",
"https://ns.adobe.com/xdm/data/record",
"https://ns.adobe.com/{TENANT_ID}/mixins/e49cbb2eec33618f686b8344b4597ecf"
],
"meta:containerId": "tenant",
"imsOrg": "{ORG_ID}",
"meta:altId": "_{TENANT_ID}.schemas.d5cc04eb8d50190001287e4c869ebe67",
"meta:xdmType": "object",
"$id": "https://ns.adobe.com/{TENANT_ID}/schemas/d5cc04eb8d50190001287e4c869ebe67",
"version": "1.1",
"meta:resourceType": "schemas",
"meta:registryMetadata": {
"repo:createDate": 1552088461236,
"repo:lastModifiedDate": 1552088649634,
"xdm:createdClientId": "{CREATED_CLIENT}",
"xdm:repositoryCreatedBy": "{CREATED_BY}"
}
}
Een schema inschakelen voor gebruik in realtime-klantprofiel union
Opdat een schema om aan in real time Profiel van de Klantdeel te nemen, moet u a union
markering aan de 3} serie van het schema {toevoegen. meta:immutableTags
U kunt dit bereiken door een PATCH-verzoek voor het desbetreffende schema in te dienen.
API formaat
PATCH /tenant/schemas/{SCHEMA_ID}
{SCHEMA_ID}
$id
URI of meta:altId
van het schema dat u wilt inschakelen.Verzoek
In de onderstaande voorbeeldaanvraag wordt een array meta:immutableTags
toegevoegd aan een bestaand schema, zodat de array een enkele tekenreekswaarde union
krijgt om deze in te schakelen voor gebruik in Profiel.
curl -X PATCH\
https://platform.adobe.io/data/foundation/schemaregistry/tenant/schemas/_{TENANT_ID}.schemas.d5cc04eb8d50190001287e4c869ebe67 \
-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": "add",
"path": "/meta:immutableTags",
"value": ["union"]
}
]'
Reactie
Een succesvol antwoord retourneert de details van het bijgewerkte schema, waarbij wordt getoond dat de array meta:immutableTags
is toegevoegd.
{
"title": "Property Information",
"description": "Property-related information.",
"type": "object",
"allOf": [
{
"$ref": "https://ns.adobe.com/{TENANT_ID}/classes/19e1d8b5098a7a76e2c10a81cbc99590"
},
{
"$ref": "https://ns.adobe.com/{TENANT_ID}/mixins/e49cbb2eec33618f686b8344b4597ecf"
}
],
"meta:class": "https://ns.adobe.com/{TENANT_ID}/classes/19e1d8b5098a7a76e2c10a81cbc99590",
"meta:abstract": false,
"meta:extensible": false,
"meta:extends": [
"https://ns.adobe.com/{TENANT_ID}/classes/19e1d8b5098a7a76e2c10a81cbc99590",
"https://ns.adobe.com/xdm/data/record",
"https://ns.adobe.com/{TENANT_ID}/mixins/e49cbb2eec33618f686b8344b4597ecf"
],
"meta:containerId": "tenant",
"imsOrg": "{ORG_ID}",
"meta:altId": "_{TENANT_ID}.schemas.d5cc04eb8d50190001287e4c869ebe67",
"meta:xdmType": "object",
"$id": "https://ns.adobe.com/{TENANT_ID}/schemas/d5cc04eb8d50190001287e4c869ebe67",
"version": "1.1",
"meta:resourceType": "schemas",
"meta:registryMetadata": {
"repo:createDate": 1552088461236,
"repo:lastModifiedDate": 1552088649634,
"xdm:createdClientId": "{CREATED_CLIENT}",
"xdm:repositoryCreatedBy": "{CREATED_BY}"
},
"meta:immutableTags": [
"union"
]
}
U kunt nu de samenvoeging voor de klasse van dit schema bekijken om te bevestigen dat de gebieden van het schema worden vertegenwoordigd. Zie de gids van het vakbondseindpuntvoor meer informatie.
Schema verwijderen delete
Het kan soms noodzakelijk zijn om een schema uit de Registratie van het Schema te verwijderen. Dit wordt gedaan door een verzoek van de DELETE met schema identiteitskaart uit te voeren die in de weg wordt verstrekt.
API formaat
DELETE /tenant/schemas/{SCHEMA_ID}
{SCHEMA_ID}
$id
URI of meta:altId
van het schema dat u wilt verwijderen.Verzoek
curl -X DELETE \
https://platform.adobe.io/data/foundation/schemaregistry/tenant/schemas/_{TENANT_ID}.schemas.d5cc04eb8d50190001287e4c869ebe67 \
-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}'
Reactie
Een geslaagde reactie retourneert HTTP-status 204 (Geen inhoud) en een lege hoofdtekst.
U kunt de schrapping bevestigen door een raadpleging (GET) verzoek aan het schema te proberen. U moet een header Accept
in de aanvraag opnemen, maar u moet de HTTP-status 404 (Niet gevonden) ontvangen omdat het schema uit de schemaregistratie is verwijderd.