Ta bort ett XDM-fält i API:t
I Experience Data Model (XDM) kan du ta bort ett fält i ett schema eller en anpassad resurs med API:t för schemaregister. När ett fält tas bort döljs det från användargränssnitt längre fram i kedjan, till exempel arbetsytan Profiles och Customer Journey Analytics, men det är i övrigt en oförändrad ä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 hur du tar 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 utvecklarhandboken för viktig information som du behöver känna till för att kunna göra dessa API-anrop. Detta inkluderar din {TENANT_ID}
, begreppet"behållare" och de huvuden som krävs för att göra förfrågningar (med särskild uppmärksamhet på rubriken Accept
och dess möjliga värden).
Föråldrade ett anpassat fält custom
Om du vill ta bort 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
i 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 fältet expansionArea
för en datatyp som beskriver en fastighetsegenskap.
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, med det borttagna fältet som innehåller meta:status
-värdet 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 slutpunkten /tenant/descriptors
.
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 schemat som du tillämpar 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 ersatts genom att leta upp schemat i fråga med rätt Accept
-rubrik.
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
som 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 information om schemat, med det borttagna fältet som innehåller meta:status
-värdet 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 guiden definierar XDM-fält i API. Mer information om hur du hanterar beskrivningar finns i slutpunktshandboken för beskrivningar.