Aggiornare un oggetto Catalog
È possibile aggiornare parte di un oggetto Catalog includendo il relativo ID nel percorso di una richiesta PATCH. Questo documento descrive i due metodi per eseguire operazioni PATCH sugli oggetti Catalog:
- Utilizzo dei campi
- Utilizzo della notazione patch JSON
Aggiorna utilizzando i campi
La chiamata di esempio seguente illustra come aggiornare un oggetto utilizzando campi e valori.
Formato API
PATCH /{OBJECT_TYPE}/{OBJECT_ID}
{OBJECT_TYPE}
Tipo di oggetto Catalog da aggiornare. Gli oggetti validi sono:
batches
dataSets
dataSetFiles
{OBJECT_ID}
Richiesta
La richiesta seguente aggiorna i campi name
e description
di un set di dati ai valori forniti nel payload. I campi oggetto che non devono essere aggiornati possono essere esclusi dal payload.
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"
}'
Risposta
In caso di esito positivo, la risposta restituisce un array contenente l’ID del set di dati aggiornato. Questo ID deve corrispondere a quello inviato nella richiesta PATCH. L'esecuzione di una richiesta GET per questo set di dati ora mostra che solo name
e description
sono stati aggiornati, mentre tutti gli altri valori rimangono invariati.
[
"@/dataSets/5ba9452f7de80400007fc52a"
]
Aggiorna utilizzando la notazione patch JSON patch-notation
La chiamata di esempio seguente illustra come aggiornare un oggetto utilizzando la patch JSON, come descritto in RFC-6902.
Per ulteriori informazioni sulla sintassi delle patch JSON, consulta la guida sui concetti fondamentali dell'API.
Formato API
PATCH /{OBJECT_TYPE}/{OBJECT_ID}
{OBJECT_TYPE}
Tipo di oggetto Catalog da aggiornare. Gli oggetti validi sono:
batches
dataSets
dataSetFiles
{OBJECT_ID}
Richiesta
La richiesta seguente aggiorna i campi name
e description
di un set di dati ai valori forniti in ciascun oggetto Patch JSON. Quando si utilizza la patch JSON, è necessario impostare anche l’intestazione Content-Type su 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" }
]'
Risposta
In caso di esito positivo, la risposta restituisce un array contenente l’ID dell’oggetto aggiornato. Questo ID deve corrispondere a quello inviato nella richiesta PATCH. L'esecuzione di una richiesta GET per questo oggetto ora mostra che solo name
e description
sono stati aggiornati mentre tutti gli altri valori rimangono invariati.
[
"@/dataSets/5ba9452f7de80400007fc52a"
]
Aggiorna utilizzando la notazione di PATCH v2 patch-v2-notation
L'endpoint /v2/dataSets/{DATASET_ID}
offre un modo più flessibile per aggiornare attributi di set di dati complessi o con nidificazione approfondita.
In genere, quando si aggiorna un campo nidificato in modo profondo (ad esempio a.b.c.d
), ogni livello nel percorso deve già esistere. Se manca un livello, è necessario crearne manualmente uno prima di impostare il valore finale. Questo richiede spesso operazioni multiple, che aggiungono complessità e aumentano la probabilità di errori.
L'endpoint /v2/dataSets/{DATASET_ID}
crea automaticamente tutti i livelli mancanti nel percorso. Anziché controllare e aggiungere manualmente b
e c
prima di impostare d
, l'operazione PATCH v2
esegue questa operazione automaticamente.
Quando si invia una richiesta PATCH all'endpoint /v2/dataSets/{DATASET_ID}
, è sufficiente inviare la struttura finale e il sistema inserisce le parti mancanti prima di applicare l'aggiornamento.
If-Match
e If-None-Match
intestazioni sono facoltative per l'endpoint /v2/dataSets/{id}
. Le richieste di PATCH a questo endpoint uniscono in modo dinamico gli aggiornamenti, consentendo modifiche senza recuperare la versione più recente del set di dati. Anche se questo riduce il rischio di perdita di dati da aggiornamenti simultanei, è possibile utilizzare If-Match
con l'ultimo etag
per garantire che le modifiche si applichino solo a una versione specifica. In alternativa, If-None-Match
impedisce gli aggiornamenti se il set di dati non è stato modificato dall'ultima versione nota.Formato API
PATCH /V2/DATASETS/{DATASET_ID}
{DATASET_ID}
Richiesta
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"
}
}
}
}'
Risposta
In caso di esito positivo, la risposta restituisce un array contenente l’ID del set di dati aggiornato, che deve corrispondere all’ID inviato nella richiesta PATCH. L'esecuzione di una richiesta GET per questo oggetto ora indica che l'oggetto extensions.adobe_lakeHouse.rowExpiration
è stato creato senza richiedere passaggi di creazione manuali precedenti.
[
"@/dataSets/67b3077efa10d92ab7a71858"
]
Un esempio di set di dati prima e dopo l’aggiornamento
L'esempio di JSON seguente illustra la struttura del set di dati prima della richiesta PATCH, in cui l'oggetto extensions.adobe_lakeHouse.rowExpiration
non è presente nel set di dati.
code language-json |
---|
|
Il seguente JSON mostra la struttura del set di dati dopo la richiesta PATCH. L'aggiornamento crea automaticamente l'oggetto extensions.adobe_lakeHouse.rowExpiration
mancante senza precedenti passaggi di creazione manuale. In questo esempio viene illustrato come la richiesta PATCH /v2/
elimina la necessità di più operazioni, rendendo gli aggiornamenti più semplici ed efficienti.
code language-json |
---|
|