Consulta - AWS AppSync

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Consulta

O documento de mapeamento de Query solicitações permite que você peça ao AWS AppSync resolvedor do DynamoDB que faça uma Query solicitação ao DynamoDB e especifique o seguinte:

  • Expressão chave

  • Qual índice usar

  • Qualquer filtro adicional

  • Quantos itens retornar

  • Se deve usar leituras consistentes

  • direção da consulta (para frente ou para trás)

  • Token de paginação

O documento de mapeamento Query possui a seguinte estrutura:

{ "version" : "2017-02-28", "operation" : "Query", "query" : { "expression" : "some expression", "expressionNames" : { "#foo" : "foo" }, "expressionValues" : { ":bar" : ... typed value } }, "index" : "fooIndex", "nextToken" : "a pagination token", "limit" : 10, "scanIndexForward" : true, "consistentRead" : false, "select" : "ALL_ATTRIBUTES" | "ALL_PROJECTED_ATTRIBUTES" | "SPECIFIC_ATTRIBUTES", "filter" : { ... }, "projection" : { ... } }

Os campos são definidos da seguinte forma:

Campos de consulta

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 Query do DynamoDB, ela deve ser definida como Query. Este valor é obrigatório.

query

A seção query permite especificar uma expressão de condição de chave que descreve quais itens recuperar do DynamoDB. Para obter mais informações sobre como escrever expressões de condição chave, consulte a documentação do KeyConditions DynamoDB. Essa seção deve ser especificada.

expression

A expressão da consulta. Esse campo deve ser especificado.

expressionNames

As substituições para espaços reservados de nome do atributo da expressão, na forma de pares chave-valor. A chave corresponde a um espaço reservado de nome usado em expression e o valor deve ser uma string que corresponde ao nome do atributo do item no DynamoDB. Esse campo é opcional e deve ser preenchido apenas por substituições para espaços reservados de nome do atributo da expressão usados em expression.

expressionValues

As substituições para espaços reservados de valor do atributo da expressão, na forma de pares chave-valor. A chave corresponde a um espaço reservado de valor usado na expression e o valor deve ser um valor digitado. Para obter mais informações sobre como especificar um "valor digitado", consulte Sistema de tipo (Mapeamento de solicitação). Este valor é obrigatório. Esse campo é opcional e deve ser preenchido apenas por substituições para espaços reservados de valor do atributo da expressão usados em expression.

filter

Um filtro adicional que pode ser usado para filtrar os resultados do DynamoDB antes que sejam retornados. Para obter mais informações sobre os filtros, consulte Filtros. Esse campo é opcional.

index

O nome do índice para consulta. A operação de consulta do DynamoDB permite que você faça a varredura em Índices secundários locais e Índices secundários globais, além do índice de chave primária para uma chave de hash. Se especificado, isso informa o DynamoDB para consultar o índice especificado. Se omitido, o índice da chave primária será consultado.

nextToken

O token de paginação para continuar uma consulta anterior. Isso seria obtido de uma consulta anterior. Esse campo é opcional.

limit

O número máximo de itens a serem avaliados (não necessariamente o número de itens correspondentes). Esse campo é opcional.

scanIndexForward

Um booliano que indica se a consulta deve ser para frente ou para trás. Esse campo é opcional e usa como padrão true.

consistentRead

Um booleano que indica se deseja usar leituras consistentes ao consultar o DynamoDB. Esse campo é opcional e usa como padrão false.

select

Por padrão, o AWS AppSync resolvedor do DynamoDB retorna somente atributos projetados no índice. Se forem necessários mais atributos, você poderá definir esse campo. Esse campo é opcional. Os valores compatíveis são:

ALL_ATTRIBUTES

Retorna todos os atributos de item da tabela ou índice especificado. Se você consultar um índice secundário local, o DynamoDB buscará todo o item da tabela pai para cada item correspondente no índice. Se o índice estiver configurado para projetar todos os atributos de item, todos os dados podem ser obtidos no índice secundário local, e nenhuma busca será necessária.

ALL_PROJECTED_ATTRIBUTES

Permitido apenas ao consultar um índice. Recupera todos os atributos que foram projetados no índice. Se o índice estiver configurado para projetar todos os atributos, esse valor de retorno é equivalente a especificar ALL_ATTRIBUTES.

SPECIFIC_ATTRIBUTES

Retorna somente os atributos listados em expression de projection. Esse valor de retorno é equivalente a especificar expression de projection sem especificar nenhum valor para Select.

projection

Uma projeção usada para especificar os atributos a serem retornados da operação do DynamoDB. Para obter mais informações sobre projeções, consulte Projeções. Esse campo é opcional.

Os resultados do DynamoDB são convertidos automaticamente em tipos GraphQL JSON e primitivos e estão disponíveis 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.

Os resultados possuem a seguinte estrutura:

{ items = [ ... ], nextToken = "a pagination token", scannedCount = 10 }

Os campos são definidos da seguinte forma:

items

Uma lista que contém os itens retornados pela consulta do DynamoDB.

nextToken

Se existirem mais resultados, nextToken conterá um token de paginação que você pode usar em outra solicitação. Observe que AWS AppSync criptografa e ofusca o token de paginação retornado do DynamoDB. Isso impede que os dados da sua tabela sejam divulgados inadvertidamente para o chamador. Observe também que esses tokens de paginação não podem ser usados em diferentes resolvedores.

scannedCount

O número de itens que corresponderam à expressão de condição da consulta, antes que uma expressão de filtro (se houve) fosse aplicada.

Exemplo

Veja a seguir um modelo de mapeamento para uma consulta getPosts(owner: ID!) do GraphQL.

Nesse exemplo, um índice secundário global em uma tabela é consultado para retornar todas as postagens de propriedade do ID especificado.

{ "version" : "2017-02-28", "operation" : "Query", "query" : { "expression" : "ownerId = :ownerId", "expressionValues" : { ":ownerId" : $util.dynamodb.toDynamoDBJson($context.arguments.owner) } }, "index" : "owner-index" }

Para obter mais informações sobre o DynamoDB, consulte a Query API documentação do DynamoDB. API