Open Cloud reprezentuje żądania i odpowiedzi jako standardowe JSON.Typy JSON standardów są tekstem, wartościami, obiektami, tablicami, liczbami i ciągami.Niektóre typy mają specjalne rozważania dotyczące reprezentacji określonych rodzajów danych, które są opisane w następnych sekcjach.
Data i czas
Używa RFC 3339, gdzie generowany wynik zawsze będzie znormalizowany Z i używa 0, 3, 6 lub 9 frakcyjnych liczb. Akceptowane są również odległości inne niż "Z".
Przykładowy czas trwania
{ "timestamp": "1972-01-01T10:00:20.021Z" }
Długość
Wygenerowane wyniki zawsze zawierają 0, 3, 6 lub 9 dziesiętnych liczb, w zależności od wymaganej precyzji, a następnie prefiks "s".Akceptowane są wszystkie dziesiętne liczby (również żadne) tak długo, jak pasują do precyzji nano-sekund i jest wymagany prefiks "s".Zakres musi wynosić od -315,576,000,000 do 315,576,000,000 sekund, włącznie.
Przykładowe trwania
{
"duration-9": "1.000340012s",
"duration-0": "1s"
}
Bity
Dane binarne są kodowane jako ciąg za pomocą standardowego kodowania base64 z pustkami.Wspierana jest zarówno standardowa, jak i bezpieczna dla URL kodowanie base64 z lub bez spacji.
Przykładowe bajty
{
"bytes": "YWJjMTIzIT8kKiYoKSctRbLx+"
}
Maska polowań
Maska pola jest ciągiem, który opisuje pola, na które należy działać przy wysyłaniu prośba.Aby skonstruować maskę pola, określasz nazwy pól JSON oddzielone przecinkami w ciągu znaku.Na przykład, biorąc pod uwagę następujący zasób:
Przykładowy zasób 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 będzie wyglądała tak: foo.b, bar
W otwartej chmurze metody aktualizacji, które wspierają maskę pola, mają parametr o nazwie updateMask, w którym możesz określić maskę pola jako wartość.
Pieniądze
Ogólnie używany do określenia ceny, typ Money ma trzyliterowy kod waluty (określony w ISO 4217) i ilość, która używa wpisywaćDecimal.Na przykład możesz reprezentować cenę 17,99 USD taką jak ta:
"myPrice": {
"currencyCode": "USD",
"quantity": {
"significand": 1799,
"exponent": -2
}
}
Produkty sklepu twórców wymagają exponent -9, więc taka sama cena wygląda tak:
"myPrice": {
"currencyCode": "USD",
"quantity": {
"significand": 17990000000,
"exponent": -9
}
}
Dekimalny
Reprezentuje liczbę dziesiętną w formie podobnej do naukowej notacji, z ważnymi liczbami i wykładnikiem.
Przykłady:
17
{"significand": 17, "exponent": 0} lub po prostu {"significand": 17}
-0.005
{"significand": -5, "exponent": -3}
33,5 milionów (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 po znaczących liczbach.Gdy exponent jest mniejszy niż 0, reprezentuje to, ile znaczących liczb pojawia się po przecinku dziesiętnym.Gdy exponent jest 0, wartość Decimal jest wartością significand.