향상된 문서 API 사용 시작
향상된 문서 API에는 DynamoDB 향상된 클라이언트 API에 필요한 것과 동일한 종속성이 필요합니다. 또한 이 항목의 시작 부분에 표시된 것처럼 DynamoDbEnhancedClient 인스턴스도 필요합니다.
확장 문서 API는 AWS SDK for Java 2.x의 버전 2.20.3과 함께 출시되었으므로 해당 버전 이상이 필요합니다.
DocumentTableSchema 및 DynamoDbTable 만들기
향상된 문서 API를 사용하여 DynamoDB 테이블에 대해 명령을 호출하려면 테이블을 클라이언트 측 DynamoDbTable<EnhancedDocument>
향상된 클라이언트의 table() 메서드는 DynamoDbTable<EnhancedDocument> 인스턴스를 생성하고 DynamoDB 테이블 이름 및 DocumentTableSchema에 대한 파라미터를 필요로 합니다.
DocumentTableSchemaAttributeConverterProvider.defaultProvider() 메서드는 기본 유형
다음 코드 조각은 스키마가 없는 EnhancedDocument 객체를 저장하는 person DynamoDB 테이블의 클라이언트 측 표현을 생성하는 코드를 보여줍니다.
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.
다음은 이 단원 전체에서 사용되는 person 객체의 JSON 표현을 보여줍니다.
{ "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" } ] }