Bijwerken met JSON Patch-notatie
De volgende voorbeeldvraag toont aan hoe te om een voorwerp bij te werken gebruikend Reparatie JSON, zoals die in wordt geschetst rFC-6902.
Voor meer informatie over de syntaxis van het Reparatie JSON, zie de API grondbeginselen gids.
API formaat
PATCH /{OBJECT_TYPE}/{OBJECT_ID}
Parameter | Beschrijving |
---|---|
{OBJECT_TYPE} |
Het type Catalog -object dat moet worden bijgewerkt. Geldige objecten zijn:
|
{OBJECT_ID} | De id van het specifieke object dat u wilt bijwerken. |
Verzoek
Met de volgende aanvraag worden de velden name
en description
van een gegevensset bijgewerkt naar de waarden in elk JSON-object Patch. Wanneer u JSON Patch gebruikt, moet u ook de header Content-Type instellen op 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" }
]'
Reactie
Een geslaagde reactie retourneert een array met de id van het bijgewerkte object. Deze id moet overeenkomen met de id die in de PATCH-aanvraag is verzonden. Wanneer u een GET-aanvraag voor dit object uitvoert, tonen nu dat alleen de waarden name
en description
zijn bijgewerkt terwijl alle andere waarden ongewijzigd blijven.
[
"@/dataSets/5ba9452f7de80400007fc52a"
]
Bijwerken met PATCH v2-notatie
Het /v2/dataSets/{DATASET_ID}
eindpunt verstrekt een flexibelere manier om complexe of diep genestelde datasetattributen bij te werken.
Wanneer u een diep genest veld bijwerkt (zoals a.b.c.d
), moet elk niveau in het pad al bestaan. Als een niveau ontbreekt, moet u elk niveau manueel creëren alvorens de definitieve waarde te plaatsen. Dit vereist vaak veelvoudige verrichtingen, die ingewikkeldheid toevoegen en de kans van fouten verhogen.
Het eindpunt /v2/dataSets/{DATASET_ID}
leidt automatisch tot om het even welke ontbrekende niveaus in de weg. In plaats van b
en c
vóór het instellen d
handmatig te controleren en toe te voegen, doet de PATCH v2
-bewerking dit voor u.
Wanneer u een PATCH-aanvraag naar het /v2/dataSets/{DATASET_ID}
-eindpunt verzendt, hoeft u alleen de uiteindelijke structuur te verzenden en vult het systeem de ontbrekende onderdelen in voordat u de update toepast.
If-Match
en If-None-Match
headers zijn optioneel voor het eindpunt /v2/dataSets/{id}
. PATCH-verzoeken aan dit eindpunt voegen updates dynamisch samen, waarbij wijzigingen worden toegestaan zonder de meest recente gegevenssetversie op te halen. Hoewel dit het risico op gegevensverlies door gelijktijdige updates vermindert, kunt u If-Match
met de nieuwste etag
gebruiken om ervoor te zorgen dat wijzigingen alleen op een specifieke versie van toepassing zijn. If-None-Match
voorkomt ook updates als de gegevensset niet is gewijzigd sinds de laatst bekende versie.API formaat
PATCH /V2/DATASETS/{DATASET_ID}
Parameter | Beschrijving |
---|---|
{DATASET_ID} | The identifier of the dataset to update. |
Verzoek
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"
}
}
}
}'
Reactie
Een geslaagde reactie retourneert een array met de id van de bijgewerkte gegevensset, die moet overeenkomen met de id die in de PATCH-aanvraag is verzonden. Wanneer u een GET-aanvraag voor dit object uitvoert, wordt nu getoond dat het extensions.adobe_lakeHouse.rowExpiration
-object is gemaakt zonder dat u daarvoor handmatig stappen hoeft te maken.
[
"@/dataSets/67b3077efa10d92ab7a71858"
]