Actualizar un objeto Catalog
Puede actualizar parte de un objeto Catalog incluyendo su ID en la ruta de una petición PATCH. Este documento describe los dos métodos para realizar operaciones de PATCH en objetos Catalog:
- Uso de campos
- Uso de la notación de parches JSON
Actualizar mediante campos
La siguiente llamada de ejemplo muestra cómo actualizar un objeto mediante campos y valores.
Formato de API
PATCH /{OBJECT_TYPE}/{OBJECT_ID}
{OBJECT_TYPE}El tipo de objeto Catalog que se va a actualizar. Los objetos válidos son:
batchesdataSetsdataSetFiles
{OBJECT_ID}Solicitud
La siguiente solicitud actualiza los campos name y description de un conjunto de datos a los valores proporcionados en la carga útil. Los campos de objeto que no se vayan a actualizar se pueden excluir de la carga útil.
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"
}'
Respuesta
Una respuesta correcta devuelve una matriz que contiene el ID del conjunto de datos actualizado. Este ID debe coincidir con el enviado en la solicitud de PATCH. Al realizar una solicitud GET para este conjunto de datos, ahora se muestra que solo se han actualizado name y description, mientras que el resto de valores permanecen sin cambios.
[
"@/dataSets/5ba9452f7de80400007fc52a"
]
Actualización mediante la notación de parches de JSON patch-notation
La siguiente llamada de ejemplo muestra cómo actualizar un objeto mediante el parche JSON, como se describe en RFC-6902.
Para obtener más información sobre la sintaxis de parches de JSON, consulte la guía de aspectos básicos de la API.
Formato de API
PATCH /{OBJECT_TYPE}/{OBJECT_ID}
{OBJECT_TYPE}El tipo de objeto Catalog que se va a actualizar. Los objetos válidos son:
batchesdataSetsdataSetFiles
{OBJECT_ID}Solicitud
La siguiente solicitud actualiza los campos name y description de un conjunto de datos a los valores proporcionados en cada objeto de parche JSON. Al utilizar el parche JSON, también debe establecer el encabezado Content-Type en 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" }
]'
Respuesta
Una respuesta correcta devuelve una matriz que contiene el ID del objeto actualizado. Este ID debe coincidir con el enviado en la solicitud de PATCH. Al realizar una petición GET para este objeto, ahora se muestra que solamente se han actualizado name y description, mientras que el resto de valores permanecen sin cambios.
[
"@/dataSets/5ba9452f7de80400007fc52a"
]
Actualización mediante la notación de PATCH v2 patch-v2-notation
El extremo /v2/dataSets/{DATASET_ID} proporciona una forma más flexible de actualizar atributos de conjuntos de datos complejos o profundamente anidados.
Normalmente, cuando se actualiza un campo anidado profundamente (como a.b.c.d), cada nivel de la ruta de acceso ya debe existir. Si falta algún nivel, debe crear manualmente cada uno antes de establecer el valor final. Esto a menudo requiere varias operaciones, lo que añade complejidad y aumenta la posibilidad de errores.
El extremo /v2/dataSets/{DATASET_ID} crea automáticamente los niveles que faltan en la ruta de acceso. En lugar de comprobar y agregar manualmente b y c antes de establecer d, la operación de PATCH v2 hace esto por usted.
Cuando envía una solicitud de PATCH al extremo /v2/dataSets/{DATASET_ID}, solo necesita enviar la estructura final y el sistema rellena las partes que faltan antes de aplicar la actualización.
If-Match y If-None-Match son opcionales para el extremo /v2/dataSets/{id}. Las solicitudes de PATCH a este extremo combinan actualizaciones de forma dinámica, lo que permite realizar modificaciones sin recuperar la última versión del conjunto de datos. Aunque esto reduce el riesgo de pérdida de datos debido a las actualizaciones simultáneas, puede usar If-Match con la última etag para asegurarse de que los cambios se apliquen únicamente a una versión específica. Como alternativa, If-None-Match evita actualizaciones si el conjunto de datos no ha cambiado desde la última versión conocida.Formato de API
PATCH /V2/DATASETS/{DATASET_ID}
{DATASET_ID}Solicitud
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"
}
}
}
}'
Respuesta
Una respuesta correcta devuelve una matriz que contiene el ID del conjunto de datos actualizado, que debe coincidir con el ID enviado en la solicitud de PATCH. Al realizar una petición GET para este objeto, ahora se muestra que el objeto extensions.adobe_lakeHouse.rowExpiration se ha creado sin requerir pasos de creación manuales previos.
[
"@/dataSets/67b3077efa10d92ab7a71858"
]
Ejemplo de conjunto de datos antes y después de la actualización
El siguiente JSON de ejemplo ilustra la estructura del conjunto de datos antes de la solicitud de PATCH, donde el objeto extensions.adobe_lakeHouse.rowExpiration no está presente en el conjunto de datos.
| code language-json |
|---|
|
El siguiente JSON muestra la estructura del conjunto de datos después de la solicitud de PATCH. La actualización crea automáticamente el objeto extensions.adobe_lakeHouse.rowExpiration que falta sin pasos de creación manuales anteriores. En este ejemplo se muestra cómo la solicitud de PATCH /v2/ elimina la necesidad de realizar varias operaciones, lo que hace que las actualizaciones sean más sencillas y eficaces.
| code language-json |
|---|
|