DeleteItem - AWS AppSync

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

DeleteItem

Il documento di mappatura delle DeleteItem richieste consente di indicare al AWS AppSync resolver DynamoDB di effettuare una DeleteItem richiesta a DynamoDB e consente di specificare quanto segue:

  • La chiave dell'elemento in DynamoDB

  • Condizioni per la riuscita dell'operazione

Il documento di mappatura DeleteItem ha la seguente struttura:

{ "version" : "2018-05-29", "operation" : "DeleteItem", "customPartitionKey" : "foo", "populateIndexFields" : boolean value, "key": { "foo" : ... typed value, "bar" : ... typed value }, "condition" : { ... }, "_version" : 1 }

I campi sono definiti come segue:

DeleteItem campi

version

La versione di definizione del modello. Al momento sono supportate le versioni 2017-02-28 e 2018-05-29. Questo valore è obbligatorio.

operation

L'operazione DynamoDB da eseguire. Per eseguire l'operazione DeleteItem DynamoDB, il valore deve essere impostato su DeleteItem. Questo valore è obbligatorio.

key

La chiave dell'elemento in DynamoDB. Gli elementi DynamoDB possono avere una sola chiave hash o una chiave hash e una chiave di ordinamento, a seconda della struttura della tabella. Per ulteriori informazioni sulla specificazione di un «valore digitato», consulta Sistema di tipi (mappatura delle richieste). Questo valore è obbligatorio.

condition

Una condizione per determinare se la richiesta deve riuscire o no in base allo stato dell'oggetto già incluso in DynamoDB. Se non viene specificata alcuna condizione, la richiesta DeleteItem elimina la voce indipendentemente dal suo stato attuale. Per ulteriori informazioni sulle condizioni, vedere Espressioni di condizione. Questo valore è facoltativo.

_version

Valore numerico che rappresenta l'ultima versione nota di un elemento. Questo valore è facoltativo. Questo campo viene utilizzato per il rilevamento dei conflitti ed è supportato solo nelle origini dati con versione.

customPartitionKey

Se abilitato, questo valore di stringa modifica il formato dei ds_pk record ds_sk and utilizzati dalla tabella delta sync quando il controllo delle versioni è abilitato (per ulteriori informazioni, consulta Conflict detection and sync nella AWS AppSync Developer Guide). Se abilitata, è abilitata anche l'elaborazione della populateIndexFields voce. Questo campo è facoltativo.

populateIndexFields

Un valore booleano che, se abilitato insieme acustomPartitionKey, crea nuove voci per ogni record nella tabella delta sync, in particolare nelle colonne gsi_ds_pk andgsi_ds_sk. Per ulteriori informazioni, consulta Rilevamento e sincronizzazione dei conflitti nella Guida per gli AWS AppSync sviluppatori. Questo campo è facoltativo.

L'elemento eliminato da DynamoDB viene automaticamente convertito in GraphQL e tipi primitivi JSON ed è disponibile nel contesto di mappatura (). $context.result

Per ulteriori informazioni sulla conversione dei tipi in DynamoDB, vedere Sistema dei tipi (mappatura delle risposte).

Per ulteriori informazioni sui modelli di mappatura delle risposte, consulta Panoramica dei modelli di mappatura Resolver.

Esempio 1

L'esempio seguente è un modello di mappatura per una mutazione deleteItem(id: ID!) GraphQL. Se esiste già una voce con questo ID, viene eliminata.

{ "version" : "2017-02-28", "operation" : "DeleteItem", "key" : { "id" : $util.dynamodb.toDynamoDBJson($ctx.args.id) } }

Esempio 2

L'esempio seguente è un modello di mappatura per una mutazione deleteItem(id: ID!, expectedVersion: Int!) GraphQL. Se esiste già una voce con questo ID, viene eliminata, ma solo se il relativo campo version è impostato su expectedVersion:

{ "version" : "2017-02-28", "operation" : "DeleteItem", "key" : { "id" : $util.dynamodb.toDynamoDBJson($ctx.args.id) }, "condition" : { "expression" : "attribute_not_exists(id) OR version = :expectedVersion", "expressionValues" : { ":expectedVersion" : $util.dynamodb.toDynamoDBJson($expectedVersion) } } }

Per ulteriori informazioni su DynamoDB, consulta la documentazione di DeleteItem API DynamoDB. API