Open Cloud reprezentuje ładunki żądań i odpowiedzi jako standardowy JSON. Standardowe typy JSON to tekst, wartości, obiekty, tablice, liczby i napisy. Niektóre typy mają specjalne wymagania dotyczące reprezentowania określonych rodzajów danych, które opisane są w kolejnych sekcjach.
Znacznik czasu
Używa RFC 3339, w którym generowany wynik zawsze będzie Z-znormalizowany i używa 0, 3, 6 lub 9 cyfr dziesiętnych. Akceptowane są offsety inne niż "Z".
Przykład znacznik czasu
{ "timestamp": "1972-01-01T10:00:20.021Z" }
Czas trwania
Generowany wynik zawsze zawiera 0, 3, 6 lub 9 cyfr dziesiętnych, w zależności od wymaganej precyzji, po której występuje przyrostek "s". Akceptowane są dowolne cyfry dziesiętne (także brak) tak długo, jak pasują do precyzji w nanosekundach, a przyrostek "s" jest wymagany. Zakres musi wynosić od -315,576,000,000 do 315,576,000,000 sekund, wliczając to.
Przykład czasów trwania
{
"duration-9": "1.000340012s",
"duration-0": "1s"
}
Bajty
Dane w bajtach są kodowane jako ciąg znaków przy użyciu standardowego kodowania base64 z paddingiem. Obsługiwane są zarówno standardowe, jak i bezpieczne kodowanie base64 z lub bez paddingu.
Przykład bajtów
{
"bytes": "YWJjMTIzIT8kKiYoKSctRbLx+"
}
FieldMask
FieldMask to ciąg, który opisuje pola, na których należy działać podczas składania żądania. Aby skonstruować maskę pola, podajesz oddzielone przecinkami nazwy pól JSON w ciągu. Na przykład, biorąc pod uwagę poniższe:
Przykład JSON
{
"foo": {
"a": "c",
"b": "d"
},
"bar": "x",
"baz": "y"
}
Jeśli chcesz określić maskę pola do aktualizacji wartości tylko foo.b i bar, maska pola wyglądałaby następująco: foo.b, bar
W Open Cloud, metody aktualizacji, które obsługują maskę pola, mają parametr o nazwie updateMask, w którym możesz określić maskę pola jako wartość.
Pieniądze
Zazwyczaj używana do zdefiniowania ceny, typ Money ma trzy-literowy kod waluty (zgodnie z definicją w ISO 4217) oraz ilość, która używa typu Decimal. Na przykład, możesz reprezentować cenę 17,99 $ w ten sposób:
"myPrice": {
"currencyCode": "USD",
"quantity": {
"significand": 1799,
"exponent": -2
}
}
Produkty Creator Store wymagają exponent równym -9, więc ta sama cena wygląda tak:
"myPrice": {
"currencyCode": "USD",
"quantity": {
"significand": 17990000000,
"exponent": -9
}
}
Dziesiętny
Reprezentuje liczbę dziesiętną w formie podobnej do notacji naukowej, z cyframi znaczącymi i wykładnikiem.
Przykłady:
17
{"significand": 17, "exponent": 0} lub tylko {"significand": 17}
-0.005
{"significand": -5, "exponent": -3}
33,5 miliona (33,500,000)
{"significand": 335, "exponent": 5}
11/8 (1.375)
{"significand": 1375, "exponent": -3}
Gdy exponent jest większy niż 0, reprezentuje liczbę zer na końcu cyfr znaczących. Gdy exponent jest mniejszy niż 0, reprezentuje ile z cyfr znaczących znajduje się po przecinku. Gdy exponent wynosi 0, wartość Decimal jest równa wartości significand.