Começar a usar a API de documentos aprimorados - AWS SDK for Java 2.x

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á.

Começar a usar a API de documentos aprimorados

A API de Documento Aprimorado exige as mesmas dependências necessárias para a API do Cliente Aprimorado do DynamoDB. Ela também requer uma instância DynamoDbEnhancedClient, conforme mostrado no início deste tópico.

Como a API de Documento Aprimorado foi lançada com a versão 2.20.3 do AWS SDK for Java 2.x, você precisa dessa versão ou uma superior.

Criar um DocumentTableSchema e uma DynamoDbTable

Para invocar comandos em uma tabela do DynamoDB usando a API de Documento Aprimorado, associe a tabela a um objeto de recurso do DynamoDbTable <EnhancedDocument> do lado do cliente.

O método table() do cliente aprimorado cria uma instância DynamoDbTable<EnhancedDocument> e exige parâmetros para o nome da tabela do DynamoDB e uma DocumentTableSchema.

O construtor de um DocumentTableSchema requer uma chave de índice primária e um ou mais provedores de conversão de atributos. O método AttributeConverterProvider.defaultProvider() fornece conversores para tipos padrão. Ele deve ser especificado mesmo se você fornecer um provedor de conversão de atributos personalizado. Você pode adicionar uma chave de índice secundária opcional ao construtor.

O trecho de código a seguir mostra o código que gera a representação do lado do cliente de uma tabela person do DynamoDB que armazena objetos EnhancedDocument sem esquema.

DynamoDbTable<EnhancedDocument> documentDynamoDbTable = enhancedClient.table("person", TableSchema.documentSchemaBuilder() // Specify the primary key attributes. .addIndexPartitionKey(TableMetadata.primaryIndexName(),"id", AttributeValueType.S) .addIndexSortKey(TableMetadata.primaryIndexName(), "lastName", AttributeValueType.S) // Specify attribute converter providers. Minimally add the default one. .attributeConverterProviders(AttributeConverterProvider.defaultProvider()) .build()); // Call documentTable.createTable() if "person" does not exist in DynamoDB. // createTable() should be called only one time.

Veja a seguir a representação JSON de um objeto person usado em toda esta seção.

{ "id": 1, "firstName": "Richard", "lastName": "Roe", "age": 25, "addresses": { "home": { "zipCode": "00000", "city": "Any Town", "state": "FL", "street": "123 Any Street" }, "work": { "zipCode": "00001", "city": "Anywhere", "state": "FL", "street": "100 Main Street" } }, "hobbies": [ "Hobby 1", "Hobby 2" ], "phoneNumbers": [ { "type": "Home", "number": "555-0100" }, { "type": "Work", "number": "555-0119" } ] }