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

Het type Catalog -object dat moet worden bijgewerkt. Geldige objecten zijn:

  • batches
  • dataSets
  • dataSetFiles
{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.

NOTE
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}
ParameterBeschrijving
{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"
]