View a markdown version of this page

Jenis sistem (pemetaan permintaan) - AWS AppSync GraphQL

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 fungsi AWS AppSync DynamoDB untuk memanggil tabel DynamoDB Anda, AWS AppSync perlu mengetahui jenis setiap nilai yang akan digunakan dalam panggilan itu. Ini karena DynamoDB mendukung lebih banyak tipe primitif daripada GraphQL atau JSON (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 terstruktur dalam tabel Anda.

Untuk informasi selengkapnya tentang tipe data DynamoDB, lihat dokumentasi Deskriptor tipe Data DynamoDB dan tipe data. https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes

Nilai DynamoDB diwakili oleh objek JSON yang berisi pasangan kunci-nilai tunggal. Kunci menentukan tipe DynamoDB, dan nilainya 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 objek JSON tidak dapat memiliki lebih dari satu pasangan kunci-nilai. Jika lebih dari satu pasangan kunci-nilai ditentukan, objek permintaan tidak diurai.

Nilai DynamoDB digunakan di mana saja dalam objek 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, nilai DynamoDB String identifier ditugaskan ke id bidang di key bagian (mungkin dalam objek GetItem permintaan).

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

Jenis yang Didukung

AWS AppSync mendukung jenis skalar, dokumen, dan set DynamoDB 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 DynamoDB Number dilambangkan dengan:

{ "N" : 1234 }

Contoh penggunaan adalah:

"expressionValues" : { ":expectedVersion" : { "N" : 1 } }
Jenis set angka 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 ] } }
Jenis biner B

Nilai biner. Nilai DynamoDB Binary dilambangkan dengan:

{ "B" : "SGVsbG8sIFdvcmxkIQo=" }

Perhatikan bahwa nilainya sebenarnya adalah string, di mana string adalah representasi data biner yang dikodekan base64. AWS AppSync memecahkan kode string ini kembali ke nilai binernya sebelum mengirimkannya 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 data biner yang dikodekan base64. AWS AppSync memecahkan kode string ini kembali ke nilai binernya sebelum mengirimkannya 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==" ] } }
Tipe 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 lainnya yang didukung. Nilai Daftar DynamoDB dilambangkan dengan:

{ "L" : [ ... ] }

Perhatikan bahwa nilainya adalah nilai majemuk, di mana daftar dapat berisi nol atau lebih dari nilai DynamoDB yang didukung (termasuk daftar lainnya). Daftar ini juga dapat berisi campuran 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 teratur dari nilai DynamoDB lain yang didukung. Nilai Peta DynamoDB dilambangkan dengan:

{ "M" : { ... } }

Perhatikan bahwa peta dapat berisi nol atau lebih pasangan kunci-nilai. Kuncinya harus berupa string, dan nilainya dapat berupa nilai DynamoDB yang didukung (termasuk peta lainnya). Peta juga dapat berisi campuran 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

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.