Atualizar usando a notação JSON Patch
O exemplo de chamada a seguir demonstra como atualizar um objeto usando o JSON Patch, conforme descrito em RFC-6902.
Para obter mais informações sobre a sintaxe do patch de JSON, consulte o guia de fundamentos de API.
Formato da API
PATCH /{OBJECT_TYPE}/{OBJECT_ID}
Parâmetro | Descrição |
---|---|
{OBJECT_TYPE} |
O tipo de objeto Catalog a ser atualizado. Os objetos válidos são:
|
{OBJECT_ID} | O identificador do objeto específico que você deseja atualizar. |
Solicitação
A solicitação a seguir atualiza os campos name
e description
de um conjunto de dados para os valores fornecidos em cada objeto de patch JSON. Ao usar o patch de JSON, você também deve definir o cabeçalho Content-Type como 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" }
]'
Resposta
Uma resposta bem-sucedida retorna uma matriz que contém a ID do objeto atualizado. Essa ID deve corresponder à enviada na solicitação PATCH. A execução de uma solicitação GET para este objeto agora mostra que apenas o name
e description
foram atualizados, enquanto todos os outros valores permanecem inalterados.
[
"@/dataSets/5ba9452f7de80400007fc52a"
]
Atualizar usando a notação PATCH v2
O ponto de extremidade /v2/dataSets/{DATASET_ID}
fornece uma maneira mais flexível de atualizar atributos de conjunto de dados complexos ou profundamente aninhados.
Normalmente, quando você atualiza um campo profundamente aninhado (como a.b.c.d
), cada nível no caminho já deve existir. Se qualquer nível estiver ausente, você deverá criar manualmente cada um antes de definir o valor final. Isso geralmente requer várias operações, o que adiciona complexidade e aumenta a chance de erros.
O ponto de extremidade /v2/dataSets/{DATASET_ID}
cria automaticamente todos os níveis ausentes no caminho. Em vez de verificar e adicionar manualmente b
e c
antes de configurar d
, a operação v2
do PATCH faz isso para você.
Ao enviar uma solicitação PATCH para o ponto de extremidade /v2/dataSets/{DATASET_ID}
, você só precisará enviar a estrutura final, e o sistema preencherá as partes ausentes antes de aplicar a atualização.
If-Match
e If-None-Match
cabeçalhos são opcionais para o ponto de extremidade /v2/dataSets/{id}
. As solicitações do PATCH para esse endpoint mesclam dinamicamente as atualizações, permitindo modificações sem recuperar a versão mais recente do conjunto de dados. Embora isso reduza o risco de perda de dados devido a atualizações simultâneas, você pode usar o If-Match
com o etag
mais recente para garantir que as alterações se apliquem apenas a uma versão específica. Como alternativa, If-None-Match
impede atualizações se o conjunto de dados não tiver sido alterado desde a última versão conhecida.Formato da API
PATCH /V2/DATASETS/{DATASET_ID}
Parâmetro | Descrição |
---|---|
{DATASET_ID} | O identificador do conjunto de dados a ser atualizado. |
Solicitação
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"
}
}
}
}'
Resposta
Uma resposta bem-sucedida retorna uma matriz que contém a ID do conjunto de dados atualizado, que deve corresponder à ID enviada na solicitação do PATCH. A execução de uma solicitação GET para este objeto agora mostra que o objeto extensions.adobe_lakeHouse.rowExpiration
foi criado sem a necessidade de etapas anteriores de criação manual.
[
"@/dataSets/67b3077efa10d92ab7a71858"
]