Jenis sistem (pemetaan permintaan) - AWS AppSync

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Jenis sistem (pemetaan permintaan)

Saat menggunakan AWS AppSync DynamoDB resolver untuk memanggil AWS AppSync tabel DynamoDB Anda, perlu mengetahui jenis setiap nilai yang akan digunakan dalam panggilan itu. Ini karena DynamoDB mendukung lebih banyak tipe primitif daripada GraphQL JSON atau (seperti set dan data biner). AWS AppSync membutuhkan beberapa petunjuk saat menerjemahkan antara GraphQL dan DynamoDB, jika tidak maka harus membuat beberapa asumsi tentang bagaimana data disusun dalam tabel Anda.

Untuk informasi selengkapnya tentang tipe data DynamoDB, lihat deskriptor tipe Data DynamoDB dan dokumentasi tipe data.

Nilai DynamoDB diwakili oleh objek yang berisi pasangan JSON kunci-nilai tunggal. Kunci menentukan jenis DynamoDB, dan nilai menentukan nilai itu sendiri. Dalam contoh berikut, kunci S menunjukkan bahwa nilainya adalah string, dan nilainya identifier adalah nilai string itu sendiri.

{ "S" : "identifier" }

Perhatikan bahwa JSON objek tidak dapat memiliki lebih dari satu pasangan kunci-nilai. Jika lebih dari satu pasangan kunci-nilai ditentukan, dokumen pemetaan permintaan tidak diuraikan.

Nilai DynamoDB digunakan di mana saja dalam dokumen pemetaan permintaan di mana Anda perlu menentukan nilai. Beberapa tempat di mana Anda perlu melakukan ini termasuk: key dan attributeValue bagian, dan expressionValues bagian dari bagian ekspresi. Dalam contoh berikut, identifier nilai DynamoDB String sedang ditetapkan ke id bidang di bagian (mungkin dalam key GetItem dokumen pemetaan permintaan).

"key" : { "id" : { "S" : "identifier" } }

Jenis yang Didukung

AWS AppSync mendukung skalar DynamoDB, dokumen, dan jenis set berikut:

Jenis string S

Nilai string tunggal. Nilai DynamoDB String dilambangkan dengan:

{ "S" : "some string" }

Contoh penggunaan adalah:

"key" : { "id" : { "S" : "some string" } }
Jenis set string SS

Satu set nilai string. Nilai DynamoDB String Set dilambangkan dengan:

{ "SS" : [ "first value", "second value", ... ] }

Contoh penggunaan adalah:

"attributeValues" : { "phoneNumbers" : { "SS" : [ "+1 555 123 4567", "+1 555 234 5678" ] } }
Jenis nomor N

Nilai numerik tunggal. Nilai Nomor DynamoDB dilambangkan dengan:

{ "N" : 1234 }

Contoh penggunaan adalah:

"expressionValues" : { ":expectedVersion" : { "N" : 1 } }
Jenis set nomor NS

Satu set nilai angka. Nilai DynamoDB Number Set dilambangkan dengan:

{ "NS" : [ 1, 2.3, 4 ... ] }

Contoh penggunaan adalah:

"attributeValues" : { "sensorReadings" : { "NS" : [ 67.8, 12.2, 70 ] } }
Tipe biner B

Nilai biner. Nilai biner DynamoDB dilambangkan dengan:

{ "B" : "SGVsbG8sIFdvcmxkIQo=" }

Perhatikan bahwa nilainya sebenarnya adalah string, di mana string adalah representasi yang dikodekan base64 dari data biner. AWS AppSync mendekode string ini kembali ke nilai binernya sebelum mengirimnya ke DynamoDB. AWS AppSync menggunakan skema decoding base64 seperti yang didefinisikan oleh RFC 2045: karakter apa pun yang tidak ada dalam alfabet base64 diabaikan.

Contoh penggunaan adalah:

"attributeValues" : { "binaryMessage" : { "B" : "SGVsbG8sIFdvcmxkIQo=" } }
Jenis set biner BS

Satu set nilai biner. Nilai DynamoDB Binary Set dilambangkan dengan:

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

Perhatikan bahwa nilainya sebenarnya adalah string, di mana string adalah representasi yang dikodekan base64 dari data biner. AWS AppSync mendekode string ini kembali ke nilai binernya sebelum mengirimnya ke DynamoDB. AWS AppSync menggunakan skema decoding base64 seperti yang didefinisikan oleh RFC 2045: karakter apa pun yang tidak ada dalam alfabet base64 diabaikan.

Contoh penggunaan adalah:

"attributeValues" : { "binaryMessages" : { "BS" : [ "SGVsbG8sIFdvcmxkIQo=", "SG93IGFyZSB5b3U/Cg==" ] } }
Jenis Boolean BOOL

Nilai Boolean. Nilai DynamoDB Boolean dilambangkan dengan:

{ "BOOL" : true }

Perhatikan bahwa hanya true dan false merupakan nilai yang valid.

Contoh penggunaan adalah:

"attributeValues" : { "orderComplete" : { "BOOL" : false } }
Jenis daftar L

Daftar nilai DynamoDB lain yang didukung. Nilai Daftar DynamoDB dilambangkan dengan:

{ "L" : [ ... ] }

Perhatikan bahwa nilainya adalah nilai gabungan, di mana daftar dapat berisi nol atau lebih dari nilai DynamoDB yang didukung (termasuk daftar lainnya). Daftar ini juga dapat berisi campuran dari berbagai jenis.

Contoh penggunaan adalah:

{ "L" : [ { "S" : "A string value" }, { "N" : 1 }, { "SS" : [ "Another string value", "Even more string values!" ] } ] }
Jenis peta M

Mewakili kumpulan pasangan kunci-nilai yang tidak berurutan dari nilai DynamoDB lain yang didukung. Nilai DynamoDB Map dilambangkan dengan:

{ "M" : { ... } }

Perhatikan bahwa peta dapat berisi nol atau lebih pasangan nilai kunci. Kuncinya harus berupa string, dan nilainya dapat berupa nilai DynamoDB yang didukung (termasuk peta lainnya). Peta juga dapat berisi campuran dari berbagai jenis.

Contoh penggunaan adalah:

{ "M" : { "someString" : { "S" : "A string value" }, "someNumber" : { "N" : 1 }, "stringSet" : { "SS" : [ "Another string value", "Even more string values!" ] } } }
Tipe nol NULL

Sebuah nilai nol. Nilai DynamoDB Null dilambangkan dengan:

{ "NULL" : null }

Contoh penggunaan adalah:

"attributeValues" : { "phoneNumbers" : { "NULL" : null } }

Untuk informasi selengkapnya tentang setiap jenis, lihat dokumentasi DynamoDB.