DeleteItem - AWS AppSync GraphQL

DeleteItem

O documento de mapeamento de solicitação DeleteItem permite a você orientar o resolvedor do DynamoDB do AWS AppSync a realizar uma solicitação DeleteItem ao DynamoDB. Além disso, permite especificar:

  • A chave do item no DynamoDB

  • Condições para que a operação seja bem-sucedida

O documento de mapeamento DeleteItem possui a seguinte estrutura:

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

Os campos são definidos da seguinte forma:

Campos DeleteItem

version

As versões de definição de modelo 2017-02-28 e 2018-05-29 são compatíveis atualmente. Este valor é obrigatório.

operation

A operação do DynamoDB para execução. Para executar a operação DeleteItem do DynamoDB, ela deve ser definida como DeleteItem. Este valor é obrigatório.

key

A chave do item no DynamoDB. Os itens do DynamoDB podem ter uma única chave de hash ou uma chave de hash e uma chave de classificação, dependendo da estrutura da tabela. Para obter mais informações sobre como especificar um "valor digitado", consulte Sistema de tipo (mapeamento da solicitação). Este valor é obrigatório.

condition

Uma condição para determinar se a solicitação deve ser bem-sucedida ou não, com base no estado do objeto que já está no DynamoDB. Se nenhuma condição for especificada, a solicitação DeleteItem excluirá um item independentemente do estado atual. Para obter mais informações sobre as condições, consulte Expressões de condição. Este valor é opcional.

_version

Um valor numérico que representa a versão conhecida mais recente de um item. Este valor é opcional. Esse campo é usado para Detecção de conflitos e só é compatível com fontes de dados versionadas.

customPartitionKey

Quando ativado, esse valor de string modifica o formato dos registros ds_pk e ds_sk usados pela tabela de sincronização delta quando o versionamento é ativado (para obter mais informações, consulte Detecção e sincronização de conflitos no Guia do desenvolvedor do AWS AppSync). Quando ativado, o processamento da entrada populateIndexFields também é ativado. Esse campo é opcional.

populateIndexFields

Um valor booleano que, quando ativado com customPartitionKey, cria novas entradas para cada registro na tabela de sincronização delta, especificamente nas colunas gsi_ds_pk e gsi_ds_sk. Para obter mais informações, consulte Detecção e sincronização de conflitos no Guia do desenvolvedor do AWS AppSync. Esse campo é opcional.

O item excluído do DynamoDB é automaticamente convertido nos tipos primitivos GraphQL e JSON e está disponível no contexto de mapeamento ($context.result).

Para obter mais informações sobre a conversão de tipo do DynamoDB, consulte Sistema de tipo (mapeamento da resposta).

Para obter mais informações sobre os modelos de mapeamento da resposta, consulte Visão geral do modelo de mapeamento do resolvedor.

Exemplo 1

Veja a seguir um modelo de mapeamento para uma mutação do GraphQL deleteItem(id: ID!). Se existir um item com esse ID, ele será excluído.

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

Exemplo 2

Veja a seguir um modelo de mapeamento para uma mutação do GraphQL deleteItem(id: ID!, expectedVersion: Int!). Se existir um item com esse ID, ele será excluído, mas apenas se o campo version estiver definido como 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) } } }

Para obter mais informações sobre a API DeleteItem do DynamoDB, consulte a Documentação da API do DynamoDB.