Ta bort ett XDM-fält i API:t
I Experience Data Model (XDM) kan du ersätta ett fält i ett schema eller en anpassad resurs med hjälp av API för schemaregister. När ett fält tas bort döljs det från användargränssnitt längre ned, t.ex. Profiles arbetsytan och Customer Journey Analytics, men det är i övrigt en oföränderlig ändring och påverkar inte befintliga dataflöden negativt.
Det här dokumentet beskriver hur du ersätter fält för olika XDM-resurser. Anvisningar om hur du tar bort ett XDM-fält med Schemaredigeraren i användargränssnittet i Experience Platform finns i självstudiekursen om ta bort ett XDM-fält i användargränssnittet.
Komma igång
Den här självstudien kräver anrop till API:t för schemaregistret. Granska utvecklarhandbok för viktig information som du behöver känna till för att kunna göra dessa API-anrop. Detta inkluderar {TENANT_ID}
, begreppet "behållare" och de rubriker som krävs för att göra en förfrågan (med särskild uppmärksamhet på Accept
header och dess möjliga värden).
Föråldrade ett anpassat fält custom
Om du vill ersätta ett fält i en anpassad klass, fältgrupp eller datatyp uppdaterar du den anpassade resursen via en PUT- eller PATCH-begäran och lägger till attributet meta:status: deprecated
till fältet i fråga.
Exemplet på API-anrop nedan tar bort ett fält i en anpassad datatyp.
API-format
PATCH /tenant/datatypes/{DATA_TYPE_ID}
Begäran
Följande begäran tar bort expansionArea
fält för en datatyp som beskriver en fastighet.
curl -X PATCH \
https://platform.adobe.io/data/foundation/schemaregistry/tenant/datatypes/_{TENANT_ID}.datatypes.8779fd45d6e4eb074300023a439862bbba359b60d451627a \
-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}' \
-H 'content-type: application/json' \
-d '[
{
"op": "add",
"path": "/properties/expansionArea/meta:status",
"value": "deprecated"
}
]'
Svar
Ett lyckat svar returnerar uppdateringsinformationen för den anpassade resursen, där det borttagna fältet innehåller ett meta:status
värde för deprecated
. Exemplet nedan har trunkerats för blanksteg.
{
"$id": "https://ns.adobe.com/{TENANT_ID}/datatypes/8779fd45d6e4eb074300023a439862bbba359b60d451627a",
"meta:altId": "_{TENANT_ID}.datatypes.8779fd45d6e4eb074300023a439862bbba359b60d451627a",
"meta:resourceType": "datatypes",
"version": "1.2",
"title": "Property Details",
"type": "object",
"description": "Details relating to a real-estate property operated by the company.",
"definitions": {
"property": {
"properties": {
"_{TENANT_ID}": {
"type":"object",
"properties": {
"expansionArea": {
"title": "Expansion Area",
"description": "Square footage for renovated additions to the property.",
"type": "integer",
"meta:status": "deprecated",
},
"propertyName": {
"title": "Property Name",
"description": "Name of the property",
"type": "string"
},
"propertyCity": {
"title": "Property City",
"description": "City where the property is located.",
"type": "string"
},
"propertyCountry": {
"title": "Property Country",
"description": "Country where the property is located.",
"type": "string"
},
"phoneNumber": {
"title": "Phone Number",
"description": "Primary phone number for the property.",
"type": "string"
},
"propertyType": {
"type": "string",
"title": "Property Type",
"description": "Type and primary use of property.",
"enum": [
"retail",
"yoga",
"fitness"
],
"meta:enum": {
"retail": "Retail Store",
"yoga": "Yoga Studio",
"fitness": "Fitness Center"
}
},
"propertyConstruction": {
"$ref": "https://ns.adobe.com/{TENANT_ID}/datatypes/24c643f618647344606222c494bd0102"
},
"squareFeet": {
"title": "Expansion Area",
"description": "Square footage for renovated additions to the property.",
"type": "integer",
}
}
}
}
}
},
"allOf": [
{
"$ref": "#/definitions/customFields",
"type": "object",
"meta:xdmType": "object"
}
],
"imsOrg": "{IMS_ORG}",
"meta:extensible": true,
"meta:abstract": true,
"meta:intendedToExtend": [
"https://ns.adobe.com/xdm/context/profile"
],
"meta:xdmType": "object",
"meta:registryMetadata": {
"repo:createdDate": 1594941263588,
"repo:lastModifiedDate": 1594941538433,
"xdm:createdClientId": "{CLIENT_ID}",
"xdm:lastModifiedClientId": "{CLIENT_ID}",
"xdm:createdUserId": "{USER_ID}",
"xdm:lastModifiedUserId": "{USER_ID}",
"eTag": "5e8a5e508eb2ed344c08cb23ed27cfb60c841bec59a2f7513deda0f7af903021",
"meta:globalLibVersion": "1.15.4"
},
"meta:containerId": "tenant",
"meta:tenantNamespace": "_{TENANT_ID}"
}
Ta bort ett standardfält i ett schema standard
Fält från standardklasser, fältgrupper och datatyper kan inte tas bort direkt. I stället kan du förskjuta användningen av dem i de enskilda scheman som använder dessa standardresurser genom att använda en beskrivning.
Skapa en beskrivning för fältborttagning create-descriptor
Om du vill skapa en beskrivning för de schemafält som du vill ta bort gör du en POST till /tenant/descriptors
slutpunkt.
API-format
POST /tenant/descriptors
Begäran
curl -X POST \
https://platform.adobe.io/data/foundation/schemaregistry/tenant/descriptors \
-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}' \
-H 'Content-Type: application/json' \
-d '{
"@type": "xdm:descriptorDeprecated",
"xdm:sourceSchema": "https://ns.adobe.com/{TENANT_ID}/schemas/c65ddf08cf2d4a2fe94bd06113bf4bc4c855e12a936410d5",
"xdm:sourceVersion": 1,
"xdm:sourceProperty": "/faxPhone"
}'
@type
xdm:descriptorDeprecated
.xdm:sourceSchema
$id
för det schema som du använder beskrivningen på.xdm:sourceVersion
1
.xdm:sourceProperty
["/firstName", "/lastName"]
).Svar
{
"@id": "d882b1202bac0ac71f1e31fbcd9afbcc37f364270186b4b3",
"@type": "xdm:descriptorDeprecated",
"xdm:sourceSchema": "https://ns.adobe.com/{TENANT_ID}/schemas/c65ddf08cf2d4a2fe94bd06113bf4bc4c855e12a936410d5",
"xdm:sourceVersion": 1,
"xdm:sourceProperty": "/faxPhone",
"imsOrg": "{IMS_ORG}",
"version": "1",
"meta:containerId": "tenant",
"meta:sandboxId": "28e74200-e3de-11e9-8f5d-7f27416c5f0d",
"meta:sandboxType": "production"
}
Verifiera det inaktuella fältet verify-deprecation
När beskrivningen har tillämpats kan du verifiera om fältet har tagits bort genom att leta upp schemat i fråga och använda rätt Accept
header.
API-format
GET /tenant/schemas
Begäran
Om du vill ta med information om inaktuella fält i API-svaret måste du ange Accept
sidhuvud till application/vnd.adobe.xed-deprecatefield+json; version=1
.
curl -X GET \
https://platform.adobe.io/data/foundation/schemaregistry/tenant/schemas/_{TENANT_ID}.schemas.c65ddf08cf2d4a2fe94bd06113bf4bc4c855e12a936410d5 \
-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}' \
-H 'Accept: application/vnd.adobe.xed-deprecatefield+json; version=1'
Svar
Ett lyckat svar returnerar informationen om schemat, där det borttagna fältet innehåller ett meta:status
värde för deprecated
. Exemplet nedan har trunkerats för blanksteg.
"faxPhone": {
"title": "Fax phone",
"description": "Fax phone number.",
"type": "object",
"meta:xdmType": "object",
"properties": {},
"meta:referencedFrom": "https://ns.adobe.com/xdm/context/phonenumber",
"meta:xdmField": "xdm:faxPhone",
"meta:status": "deprecated"
}
Nästa steg
I det här dokumentet beskrivs hur XDM-fält skrivs ut med API:t för schemaregister. Mer information om hur du konfigurerar fält för anpassade resurser finns i handboken definiera XDM-fält i API. Mer information om hur du hanterar beskrivningar finns i slutpunktshandbok för beskrivningar.