Aggiorna utilizzando la notazione patch JSON

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}
ParametroDescrizione
{OBJECT_TYPE}

Tipo di oggetto Catalog da aggiornare. Gli oggetti validi sono:

  • batches
  • dataSets
  • dataSetFiles
{OBJECT_ID}Identificatore dell’oggetto specifico da aggiornare.

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

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.

NOTE
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}
ParametroDescrizione
{DATASET_ID}Identificatore del set di dati da aggiornare.

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"
]