更新目錄物件
- 主題:
- 目錄
建立對象:
- 開發人員
您可以在PATCH要求的路徑中包含物件的ID,以更新Catalog物件的一部分。 本文介紹在目錄物件上執行PATCH作業的兩種方法:
- 使用欄位
- 使用JSON修補程式標籤法
使用欄位更新
下列範例呼叫示範如何使用欄位和值更新物件。
API格式
PATCH /{OBJECT_TYPE}/{OBJECT_ID}
參數 | 說明 |
---|---|
{OBJECT_TYPE} |
要更新的Catalog物件型別。 有效的物件包括:
|
{OBJECT_ID} | 您要更新之特定物件的識別碼。 |
要求
以下請求會將資料集的name
和description
欄位更新為承載中提供的值。 您可從承載中排除不需要更新的物件欄位。
curl -X PATCH \
https://platform.adobe.io/data/foundation/catalog/dataSets/5ba9452f7de80400007fc52a \
-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 '{
"name":"Updated Dataset Name",
"description":"Updated description for Sample Dataset"
}'
回應
成功的回應會傳回陣列,其中包含已更新資料集的ID。 此ID應符合PATCH請求中傳送的ID。 針對此資料集執行GET要求時,現在會顯示只有name
和description
已更新,而所有其他值保持不變。
[
"@/dataSets/5ba9452f7de80400007fc52a"
]
PATCH /{OBJECT_TYPE}/{OBJECT_ID}
{OBJECT_TYPE}
要更新的Catalog物件型別。 有效的物件包括:
batches
dataSets
dataSetFiles
{OBJECT_ID}
要求
以下請求會將資料集的name
和description
欄位更新為每個JSON修補程式物件中提供的值。 使用JSON修補程式時,您也必須將Content-Type標頭設為application/json-patch+json
。
curl -X PATCH \
https://platform.adobe.io/data/foundation/catalog/dataSets/5ba9452f7de80400007fc52a \
-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-patch+json' \
-d '[
{ "op": "add", "path": "/name", "value": "New Dataset Name" },
{ "op": "add", "path": "/description", "value": "New description for dataset" }
]'
回應
成功的回應會傳回包含已更新物件ID的陣列。 此ID應符合PATCH請求中傳送的ID。 針對此物件執行GET要求時,現在會顯示只有name
和description
已更新,而所有其他值保持不變。
[
"@/dataSets/5ba9452f7de80400007fc52a"
]
使用PATCH v2標籤法更新
/v2/dataSets/{DATASET_ID}
端點提供更靈活的方式,可更新複雜或深度巢狀資料集屬性。
通常,當您更新深層巢狀欄位(例如a.b.c.d
)時,路徑中的每個層級都必須已存在。 如果缺少任何層級,您必須在設定最終值之前手動建立每個層級。 這通常需要多項作業,因而增加複雜度並增加錯誤發生率。
/v2/dataSets/{DATASET_ID}
端點會自動在路徑中建立任何遺漏的層級。 PATCH v2
作業不是在設定d
之前手動檢查並新增b
和c
,而是為您執行此操作。
當您傳送PATCH要求至/v2/dataSets/{DATASET_ID}
端點時,您只需要傳送最終結構,而且系統會在套用更新之前填入缺少的部分。
/v2/dataSets/{id}
端點的If-Match
和If-None-Match
標頭為選用。 對此端點的PATCH請求會動態合併更新,從而允許進行修改而不擷取最新的資料集版本。 雖然這樣可以減少同時更新造成資料遺失的風險,但您可以搭配最新的etag
使用If-Match
,以確保變更僅套用至特定版本。 或者,如果資料集自上次已知版本以來未變更,If-None-Match
可防止更新。API格式
PATCH /V2/DATASETS/{DATASET_ID}
{DATASET_ID}
要求
curl -X PATCH https://platform.adobe.io/data/foundation/catalog/v2/dataSets/67b3077efa10d92ab7a71858 \
-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 '{
"extensions": {
"adobe_lakeHouse": {
"rowExpiration": {
"ttlValue": "P9Y"
}
}
}
}'
回應
成功的回應會傳回陣列,內含更新資料集的ID,且此ID應符合PATCH請求中傳送的ID。 現在執行此物件的GET要求時,會顯示extensions.adobe_lakeHouse.rowExpiration
物件已建立,不需要先執行手動建立步驟。
[
"@/dataSets/67b3077efa10d92ab7a71858"
]
更新前後範例資料集
以下範例JSON說明資料集結構 在 PATCH請求之前,其中extensions.adobe_lakeHouse.rowExpiration
物件不存在於資料集中。
{
"67b3077efa10d92ab7a71858": {
"name": "Acme Sales Data",
"description": "This dataset contains sales transaction records for Acme Corporation.",
"tags": {
"adobe/siphon/table/format": [
"delta"
],
"adobe/pqs/table": [
"testdataset_20250217_095510_966"
]
},
"classification": {
"dataBehavior": "time-series",
"managedBy": "CUSTOMER"
},
"createdUser": "{USER_ID}",
"imsOrg": "{ORG_ID}",
"sandboxId": "{SANDBOX_ID}",
"createdClient": "{CLIENT_ID}",
"updatedUser": "{USER_ID}",
"version": "1.0.0",
"extensions": {
"adobe_lakeHouse": {},
"adobe_unifiedProfile": {}
},
"created": 1739786110978,
"updated": 1739786111203,
"viewId": "{VIEW_ID}",
"basePath": "{STORAGE_PATH}",
"fileDescription": {},
"files": "@/dataSetFiles?dataSetId=67b3077efa10d92ab7a71858",
"schemaRef": {
"id": "{SCHEMA_ID}",
"contentType": "application/vnd.adobe.xed+json; version=1"
},
"persistence": {
"adls": {
"location": "{STORAGE_PATH}",
"adlsType": "GEN2",
"credentials": "@/dataSets/67b3077efa10d92ab7a71858/credentials"
}
}
}
}
下列JSON會在 PATCH請求之後顯示資料集結構。 更新會自動建立遺失的extensions.adobe_lakeHouse.rowExpiration
物件,不需要先執行手動建立步驟。 此範例示範/v2/
PATCH要求如何免除多重作業的需求,讓更新更簡單、更有效率。
{
"67b3077efa10d92ab7a71858": {
"name": "Acme Sales Data",
"description": "This dataset contains sales transaction records for Acme Corporation.",
"tags": {
"adobe/siphon/table/format": [
"delta"
],
"adobe/pqs/table": [
"testdataset_20250217_095510_966"
]
},
"imsOrg": "{ORG_ID}",
"sandboxId": "{SANDBOX_ID}",
"extensions": {
"adobe_lakeHouse": {
"rowExpiration": {
"ttlValue": "{TTL_VALUE}"
}
},
"adobe_unifiedProfile": {}
},
"version": "{VERSION}",
"created": "{CREATED_TIMESTAMP}",
"updated": "{UPDATED_TIMESTAMP}",
"createdClient": "{CLIENT_ID}",
"createdUser": "{USER_ID}",
"updatedUser": "{USER_ID}",
"classification": {
"dataBehavior": "time-series",
"managedBy": "CUSTOMER"
},
"viewId": "{VIEW_ID}",
"basePath": "{STORAGE_PATH}",
"fileDescription": {},
"files": "@/dataSetFiles?dataSetId=67b3077efa10d92ab7a71858",
"schemaRef": {
"id": "{SCHEMA_ID}",
"contentType": "{CONTENT_TYPE}"
},
"persistence": {
"adls": {
"location": "{STORAGE_PATH}",
"adlsType": "{STORAGE_TYPE}",
"credentials": "@/dataSets/67b3077efa10d92ab7a71858/credentials"
}
}
}
}