本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
類型系統(響應映射)
收到來自 DynamoDB 的回應時, AWS AppSync 會自動將其轉換為 GraphQL 和JSON原始類型。DynamoDB 中的每個屬性都會在回應對應內容中解碼並傳回。
例如,如果 DynamoDB 傳回下列內容:
{ "id" : { "S" : "1234" }, "name" : { "S" : "Nadia" }, "age" : { "N" : 25 } }
然後, AWS AppSync DynamoDB 解析器將其轉換為 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 傳回下列數字集值:
{ "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 清單值:
{ "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
-
任何其他受支援的 DynamoDB 值的索引鍵/值集合。DynamoDB 對映值會以JSON物件的形式傳回,其中每個索引鍵/值也會轉換。
例如,如果 DynamoDB 傳回下列 DynamoDB 對應值:
{ "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 傳回下列空值:
{ "NULL" : null }
AWS AppSync 它轉換為一個空:
null