Sample code for 30+ languages & platforms
Classic ASP

DynamoDB - Query

See more Amazon DynamoDB Examples

The Query operation finds items based on primary key values. You can query any table or secondary index that has a composite primary key (a partition key and a sort key).

Chilkat Classic ASP Downloads

Classic ASP
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<%
success = 0

set rest = Server.CreateObject("Chilkat.Rest")

' Implements the following CURL command:

' curl -X POST https://dynamodb.us-west-2.amazonaws.com/ \
'   -H "Accept-Encoding: identity" \
'   -H "Content-Type: application/x-amz-json-1.0" \
'   -H "Authorization: AWS4-HMAC-SHA256 Credential=<Credential>, SignedHeaders=<Headers>, Signature=<Signature>" \
'   -H "X-Amz-Date: <Date>" \
'   -H "X-Amz-Target: DynamoDB_20120810.Query" \
'   -d '{
'     "TableName": "Reply",
'     "IndexName": "PostedBy-Index",
'     "Limit": 3,
'     "ConsistentRead": true,
'     "ProjectionExpression": "Id, PostedBy, ReplyDateTime",
'     "KeyConditionExpression": "Id = :v1 AND PostedBy BETWEEN :v2a AND :v2b",
'     "ExpressionAttributeValues": {
'         ":v1": {"S": "Amazon DynamoDB#DynamoDB Thread 1"},
'         ":v2a": {"S": "User A"},
'         ":v2b": {"S": "User C"}
'     },
'     "ReturnConsumedCapacity": "TOTAL"
' }'

' Use the following online tool to generate REST code from a CURL command
' Convert a cURL Command to REST Source Code

set authAws = Server.CreateObject("Chilkat.AuthAws")
authAws.AccessKey = "AWS_ACCESS_KEY"
authAws.SecretKey = "AWS_SECRET_KEY"
' Don't forget to change the region to your particular region. (Also make the same change in the call to Connect below.)
authAws.Region = "us-west-2"
authAws.ServiceName = "dynamodb"
' SetAuthAws causes Chilkat to automatically add the following headers: Authorization, X-Amz-Date
success = rest.SetAuthAws(authAws)

' URL: https://dynamodb.us-west-2.amazonaws.com/
bTls = 1
port = 443
bAutoReconnect = 1
success = rest.Connect("dynamodb.us-west-2.amazonaws.com",port,bTls,bAutoReconnect)
If (success <> 1) Then
    Response.Write "<pre>" & Server.HTMLEncode( "ConnectFailReason: " & rest.ConnectFailReason) & "</pre>"
    Response.Write "<pre>" & Server.HTMLEncode( rest.LastErrorText) & "</pre>"
    Response.End
End If

' Note: The above code does not need to be repeatedly called for each REST request.
' The rest object can be setup once, and then many requests can be sent.  Chilkat will automatically
' reconnect within a FullRequest* method as needed.  It is only the very first connection that is explicitly
' made via the Connect method.

' Use this online tool to generate code from sample JSON:
' Generate Code to Create JSON

' The following JSON is sent in the request body.

' {
'   "TableName": "Reply",
'   "IndexName": "PostedBy-Index",
'   "Limit": 3,
'   "ConsistentRead": true,
'   "ProjectionExpression": "Id, PostedBy, ReplyDateTime",
'   "KeyConditionExpression": "Id = :v1 AND PostedBy BETWEEN :v2a AND :v2b",
'   "ExpressionAttributeValues": {
'     ":v1": {
'       "S": "Amazon DynamoDB#DynamoDB Thread 1"
'     },
'     ":v2a": {
'       "S": "User A"
'     },
'     ":v2b": {
'       "S": "User C"
'     }
'   },
'   "ReturnConsumedCapacity": "TOTAL"
' }

set json = Server.CreateObject("Chilkat.JsonObject")
success = json.UpdateString("TableName","Reply")
success = json.UpdateString("IndexName","PostedBy-Index")
success = json.UpdateInt("Limit",3)
success = json.UpdateBool("ConsistentRead",1)
success = json.UpdateString("ProjectionExpression","Id, PostedBy, ReplyDateTime")
success = json.UpdateString("KeyConditionExpression","Id = :v1 AND PostedBy BETWEEN :v2a AND :v2b")
success = json.UpdateString("ExpressionAttributeValues.:v1.S","Amazon DynamoDB#DynamoDB Thread 1")
success = json.UpdateString("ExpressionAttributeValues.:v2a.S","User A")
success = json.UpdateString("ExpressionAttributeValues.:v2b.S","User C")
success = json.UpdateString("ReturnConsumedCapacity","TOTAL")

success = rest.AddHeader("Content-Type","application/x-amz-json-1.0")
success = rest.AddHeader("X-Amz-Target","DynamoDB_20120810.Query")
success = rest.AddHeader("Accept-Encoding","identity")

set sbRequestBody = Server.CreateObject("Chilkat.StringBuilder")
success = json.EmitSb(sbRequestBody)
set sbResponseBody = Server.CreateObject("Chilkat.StringBuilder")
success = rest.FullRequestSb("POST","/",sbRequestBody,sbResponseBody)
If (success <> 1) Then
    Response.Write "<pre>" & Server.HTMLEncode( rest.LastErrorText) & "</pre>"
    Response.End
End If

respStatusCode = rest.ResponseStatusCode
Response.Write "<pre>" & Server.HTMLEncode( "response status code = " & respStatusCode) & "</pre>"
If (respStatusCode >= 400) Then
    Response.Write "<pre>" & Server.HTMLEncode( "Response Status Code = " & respStatusCode) & "</pre>"
    Response.Write "<pre>" & Server.HTMLEncode( "Response Header:") & "</pre>"
    Response.Write "<pre>" & Server.HTMLEncode( rest.ResponseHeader) & "</pre>"
    Response.Write "<pre>" & Server.HTMLEncode( "Response Body:") & "</pre>"
    Response.Write "<pre>" & Server.HTMLEncode( sbResponseBody.GetAsString()) & "</pre>"
    Response.End
End If

set jsonResponse = Server.CreateObject("Chilkat.JsonObject")
success = jsonResponse.LoadSb(sbResponseBody)

jsonResponse.EmitCompact = 0
Response.Write "<pre>" & Server.HTMLEncode( jsonResponse.Emit()) & "</pre>"

' Sample JSON response:
' (Sample code for parsing the JSON response is shown below)

' {
'   "ConsumedCapacity": {
'     "CapacityUnits": 1,
'     "TableName": "Reply"
'   },
'   "Count": 2,
'   "Items": [
'     {
'       "ReplyDateTime": {
'         "S": "2015-02-18T20:27:36.165Z"
'       },
'       "PostedBy": {
'         "S": "User A"
'       },
'       "Id": {
'         "S": "Amazon DynamoDB#DynamoDB Thread 1"
'       }
'     },
'     {
'       "ReplyDateTime": {
'         "S": "2015-02-25T20:27:36.165Z"
'       },
'       "PostedBy": {
'         "S": "User B"
'       },
'       "Id": {
'         "S": "Amazon DynamoDB#DynamoDB Thread 1"
'       }
'     }
'   ],
'   "ScannedCount": 2
' }

' Sample code for parsing the JSON response...
' Use the following online tool to generate parsing code from sample JSON:
' Generate Parsing Code from JSON

ConsumedCapacityCapacityUnits = jsonResponse.IntOf("ConsumedCapacity.CapacityUnits")
ConsumedCapacityTableName = jsonResponse.StringOf("ConsumedCapacity.TableName")
Count = jsonResponse.IntOf("Count")
ScannedCount = jsonResponse.IntOf("ScannedCount")
i = 0
count_i = jsonResponse.SizeOfArray("Items")
Do While i < count_i
    jsonResponse.I = i
    ReplyDateTimeS = jsonResponse.StringOf("Items[i].ReplyDateTime.S")
    PostedByS = jsonResponse.StringOf("Items[i].PostedBy.S")
    IdS = jsonResponse.StringOf("Items[i].Id.S")
    i = i + 1
Loop

%>
</body>
</html>