Open Cloud mewakili payload permintaan dan respons sebagai JSON standar. Jenis JSON standar adalah teks, nilai, objek, array, angka, dan string. Beberapa jenis memiliki pertimbangan khusus untuk mewakili jenis data tertentu, yang dijelaskan dalam bagian berikut.
Tanda Waktu
Menggunakan RFC 3339, di mana keluaran yang dihasilkan selalu dinormalisasi Z dan menggunakan 0, 3, 6, atau 9 digit pecahan. Offset selain "Z" juga diterima.
Contoh Tanda Waktu
{ "timestamp": "1972-01-01T10:00:20.021Z" }
Durasi
Keluaran yang dihasilkan selalu mengandung 0, 3, 6, atau 9 digit pecahan, tergantung pada presisi yang diperlukan, diikuti dengan akhiran "s". Digit pecahan apa pun (juga tidak ada) diterima selama sesuai dengan presisi nano-detik dan akhiran "s" wajib. Rentang harus dari -315.576.000.000 hingga 315.576.000.000 detik, termasuk.
Contoh Durasi
{
"duration-9": "1.000340012s",
"duration-0": "1s"
}
Byte
Data byte dikodekan sebagai string menggunakan pengkodean base64 standar dengan padding. Baik pengkodean base64 standar atau aman URL dengan atau tanpa padding didukung.
Contoh Byte
{
"bytes": "YWJjMTIzIT8kKiYoKSctRbLx+"
}
FieldMask
FieldMask adalah string yang menggambarkan bidang yang akan diolah saat melakukan permintaan. Untuk membangun field mask, Anda menyebutkan nama bidang JSON yang dipisahkan koma dalam sebuah string. Misalnya, dengan yang berikut:
Contoh JSON
{
"foo": {
"a": "c",
"b": "d"
},
"bar": "x",
"baz": "y"
}
Jika Anda ingin menentukan field mask untuk memperbarui nilai hanya pada foo.b dan bar, maka field mask akan terlihat seperti: foo.b, bar
Di Open Cloud, metode pembaruan yang mendukung field mask memiliki parameter bernama updateMask, di mana Anda dapat menentukan field mask sebagai nilai.
Uang
Umumnya digunakan untuk mendefinisikan harga, tipe Money memiliki kode mata uang tiga huruf (sebagaimana ditentukan dalam ISO 4217) dan jumlah, yang menggunakan tipe Decimal. Misalnya, Anda mungkin mewakili harga $17,99 seperti ini:
"myPrice": {
"currencyCode": "USD",
"quantity": {
"significand": 1799,
"exponent": -2
}
}
Produk Creator Store memerlukan exponent sebesar -9, jadi harga yang sama terlihat seperti ini:
"myPrice": {
"currencyCode": "USD",
"quantity": {
"significand": 17990000000,
"exponent": -9
}
}
Desimal
Mewakili angka desimal dalam bentuk yang mirip dengan notasi ilmiah, dengan digit signifikan dan eksponennya.
Contoh:
17
{"significand": 17, "exponent": 0} atau cukup {"significand": 17}
-0.005
{"significand": -5, "exponent": -3}
33,5 juta (33.500.000)
{"significand": 335, "exponent": 5}
11/8 (1.375)
{"significand": 1375, "exponent": -3}
Ketika exponent lebih besar dari 0, itu mewakili jumlah nol yang mengikut setelah digit signifikan. Ketika exponent kurang dari 0, itu mewakili berapa banyak dari digit signifikan yang berada setelah titik desimal. Ketika exponent adalah 0, nilai dari Decimal adalah nilai dari significand.