Uppdatera ett katalogobjekt
Du kan uppdatera en del av ett Catalog-objekt genom att ta med dess ID i sökvägen för en PATCH-begäran. Det här dokumentet innehåller två metoder för att utföra PATCH-åtgärder på katalogobjekt:
- Använda fält
- Använda JSON Patch-notation
Uppdatera med fält
I följande exempelanrop visas hur du uppdaterar ett objekt med hjälp av fält och värden.
API-format
PATCH /{OBJECT_TYPE}/{OBJECT_ID}
{OBJECT_TYPE}
Den typ av Catalog-objekt som ska uppdateras. Giltiga objekt är:
batches
dataSets
dataSetFiles
{OBJECT_ID}
Begäran
Följande begäran uppdaterar fälten name
och description
i en datamängd till värdena som anges i nyttolasten. Objektfält som inte ska uppdateras kan uteslutas från nyttolasten.
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"
}'
Svar
Ett lyckat svar returnerar en array som innehåller ID:t för den uppdaterade datauppsättningen. Detta ID ska matcha det som skickas i PATCH-begäran. När en GET-begäran utförs för den här datauppsättningen visas nu att endast name
och description
har uppdaterats medan alla andra värden förblir oförändrade.
[
"@/dataSets/5ba9452f7de80400007fc52a"
]
Uppdatera med JSON Patch-notation patch-notation
I följande exempelanrop visas hur du uppdaterar ett objekt med JSON Patch, enligt beskrivningen i RFC-6902.
Mer information om JSON Patch-syntax finns i API-handboken.
API-format
PATCH /{OBJECT_TYPE}/{OBJECT_ID}
{OBJECT_TYPE}
Den typ av Catalog-objekt som ska uppdateras. Giltiga objekt är:
batches
dataSets
dataSetFiles
{OBJECT_ID}
Begäran
Följande begäran uppdaterar fälten name
och description
i en datauppsättning till de värden som anges i varje JSON Patch-objekt. När du använder JSON Patch måste du även ange Content-Type-huvudet till 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" }
]'
Svar
Ett lyckat svar returnerar en array som innehåller ID:t för det uppdaterade objektet. Detta ID ska matcha det som skickas i PATCH-begäran. När en GET-begäran utförs för det här objektet visas nu att endast name
och description
har uppdaterats medan alla andra värden förblir oförändrade.
[
"@/dataSets/5ba9452f7de80400007fc52a"
]
Uppdatera med PATCH v2-notering patch-v2-notation
Slutpunkten /v2/dataSets/{DATASET_ID}
är ett mer flexibelt sätt att uppdatera komplexa eller djupt inkapslade datauppsättningsattribut.
När du uppdaterar ett djupt inkapslat fält (till exempel a.b.c.d
) måste vanligtvis varje nivå i sökvägen redan finnas. Om någon nivå saknas måste du skapa varje nivå manuellt innan du anger det slutgiltiga värdet. Detta kräver ofta flera åtgärder, vilket ökar komplexiteten och risken för fel.
Slutpunkten /v2/dataSets/{DATASET_ID}
skapar automatiskt nivåer som saknas i banan. I stället för att kontrollera och lägga till b
och c
innan du anger d
manuellt, gör PATCH v2
-åtgärden det här åt dig.
När du skickar en PATCH-begäran till /v2/dataSets/{DATASET_ID}
-slutpunkten behöver du bara skicka den slutliga strukturen, och systemet fyller i de delar som saknas innan du tillämpar uppdateringen.
If-Match
och If-None-Match
huvuden är valfria för slutpunkten /v2/dataSets/{id}
. PATCH-begäranden till den här slutpunkten sammanfogar uppdateringar dynamiskt, vilket tillåter ändringar utan att hämta den senaste datauppsättningsversionen. Detta minskar risken för dataförlust vid samtidiga uppdateringar, men du kan använda If-Match
med den senaste etag
för att se till att ändringarna bara gäller för en viss version. Alternativt kan If-None-Match
förhindra uppdateringar om datauppsättningen inte har ändrats sedan den senaste kända versionen.API-format
PATCH /V2/DATASETS/{DATASET_ID}
{DATASET_ID}
Begäran
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"
}
}
}
}'
Svar
Ett lyckat svar returnerar en array som innehåller ID:t för den uppdaterade datauppsättningen, som ska matcha det ID som skickades i PATCH-begäran. När en GET-begäran utförs för det här objektet visas nu att extensions.adobe_lakeHouse.rowExpiration
-objektet har skapats utan att föregående manuella steg behöver skapas.
[
"@/dataSets/67b3077efa10d92ab7a71858"
]
En exempeldatauppsättning före och efter uppdatering
I exemplet JSON nedan illustreras datauppsättningsstrukturen före PATCH-begäran, där extensions.adobe_lakeHouse.rowExpiration
-objektet inte finns i datauppsättningen.
code language-json |
---|
|
I följande JSON visas datauppsättningsstrukturen efter PATCH-begäran. Uppdateringen skapar automatiskt det saknade extensions.adobe_lakeHouse.rowExpiration
-objektet utan föregående steg för att skapa manuellt. I det här exemplet visas hur PATCH-begäran /v2/
eliminerar behovet av flera åtgärder, vilket gör uppdateringarna enklare och effektivare.
code language-json |
---|
|