類型系統 (回應映射) - AWS AppSync

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

類型系統 (回應映射)

從 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="

請注意,二進位資料是在 base64 編碼方案中編碼,如 RFC4648 RFC2045 中所指定。

二進位集類型 BS

二進位值的集合。DynamoDB 二進位集值會傳回為包含 base64 表示值的字串清單。

例如,如果 DynamoDB 傳回下列 DynamoDB 二進位集值:

{ "BS" : [ "SGVsbG8sIFdvcmxkIQo=", "SG93IGFyZSB5b3U/Cg==" ... ] }

AWS AppSync 會將其轉換為包含 base64 值表示法的字串清單:

[ "SGVsbG8sIFdvcmxkIQo=", "SG93IGFyZSB5b3U/Cg==" ... ]

請注意,二進位資料是在 base64 編碼方案中編碼,如 RFC4648 RFC2045 中所指定。

布林類型 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