本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
類型系統 (回應映射)
從 DynamoDB 接收回應時, AWS AppSync 會自動將其轉換為 GraphQL JSON 和原始類型。DynamoDB 中的每個屬性都會解碼,並在回應處理常式的內容中傳回。
例如,如果 DynamoDB 傳回下列項目:
{ "id" : { "S" : "1234" }, "name" : { "S" : "Nadia" }, "age" : { "N" : 25 } }
從管道解析程式傳回結果時, 會將結果 AWS AppSync 轉換為 GraphQL,並JSON輸入為:
{ "id" : "1234", "name" : "Nadia", "age" : 25 }
本節說明如何 AWS AppSync 轉換下列 DynamoDB 純量、文件和設定類型:
- 字串類型
S
-
單一字串值。DynamoDB 字串值會傳回為字串。
例如,如果 DynamoDB 傳回下列 DynamoDB 字串值:
{ "S" : "some string" }
AWS AppSync 會將其轉換為字串:
"some string"
- 字串集類型
SS
-
字串值的集合。DynamoDB 字串集值會傳回為字串清單。
例如,如果 DynamoDB 傳回下列 DynamoDB 字串集值:
{ "SS" : [ "first value", "second value", ... ] }
AWS AppSync 會將其轉換為字串清單:
[ "+1 555 123 4567", "+1 555 234 5678" ]
- 數字類型
N
-
單一數值。DynamoDB 號碼值會傳回為數字。
例如,如果 DynamoDB 傳回下列 DynamoDB 號碼值:
{ "N" : 1234 }
AWS AppSync 會將其轉換為數字:
1234
- 數字集類型
NS
-
數值的集合。DynamoDB 數字集值會傳回為數字清單。
例如,如果 DynamoDB 傳回下列 DynamoDB 號碼集值:
{ "NS" : [ 67.8, 12.2, 70 ] }
AWS AppSync 會將其轉換為數字清單:
[ 67.8, 12.2, 70 ]
- 二進位類型
B
-
二進位值。DynamoDB 二進位值會傳回為字串,其中包含該值的 base64 表示法。
例如,如果 DynamoDB 傳回下列 DynamoDB 二進位值:
{ "B" : "SGVsbG8sIFdvcmxkIQo=" }
AWS AppSync 會將其轉換為包含 base64 表示法的值的字串:
"SGVsbG8sIFdvcmxkIQo="
- 二進位集類型
BS
-
二進位值的集合。DynamoDB 二進位集值會傳回為包含 base64 表示值的字串清單。
例如,如果 DynamoDB 傳回下列 DynamoDB 二進位集值:
{ "BS" : [ "SGVsbG8sIFdvcmxkIQo=", "SG93IGFyZSB5b3U/Cg==" ... ] }
AWS AppSync 會將其轉換為包含 base64 值表示法的字串清單:
[ "SGVsbG8sIFdvcmxkIQo=", "SG93IGFyZSB5b3U/Cg==" ... ]
- 布林類型
BOOL
-
布林值。DynamoDB 布林值會傳回為布林值。
例如,如果 DynamoDB 傳回下列 DynamoDB 布林值:
{ "BOOL" : true }
AWS AppSync 會將其轉換為布林值:
true
- 清單類型
L
-
任何其他支援的 DynamoDB 值清單。DynamoDB 清單值會傳回為值清單,其中每個內部值也會轉換。
例如,如果 DynamoDB 傳回下列 DynamoDB List 值:
{ "L" : [ { "S" : "A string value" }, { "N" : 1 }, { "SS" : [ "Another string value", "Even more string values!" ] } ] }
AWS AppSync 會將其轉換為轉換值的清單:
[ "A string value", 1, [ "Another string value", "Even more string values!" ] ]
- 映射類型
M
-
key/value collection of any other supported DynamoDB value. A DynamoDB Map value is returned as a JSON object, where each key/value 也會轉換 。
例如,如果 DynamoDB 傳回下列 DynamoDB Map 值:
{ "M" : { "someString" : { "S" : "A string value" }, "someNumber" : { "N" : 1 }, "stringSet" : { "SS" : [ "Another string value", "Even more string values!" ] } } }
AWS AppSync 會將其轉換為JSON物件:
{ "someString" : "A string value", "someNumber" : 1, "stringSet" : [ "Another string value", "Even more string values!" ] }
- Null 類型
NULL
-
null 值。
例如,如果 DynamoDB 傳回下列 DynamoDB Null 值:
{ "NULL" : null }
AWS AppSync 會將其轉換為 null:
null