Open Cloud は、リクエストとレスポンスのペイロードを 標準 JSON として表現します。標準 JSON タイプには、テキスト、値、オブジェクト、配列、数値、文字列があります。特定のデータの種類を表現するために特別な考慮が必要なタイプもあり、それらは以下のセクションで説明されています。
タイムスタンプ
RFC 3339 を使用しており、生成された出力は常に Z 正規化され、0、3、6、または 9 桁の小数点以下の数字を使用します。"Z" 以外のオフセットも受け付けます。
例 タイムスタンプ
{ "timestamp": "1972-01-01T10:00:20.021Z" }
デュレーション
生成された出力は常に 0、3、6、または 9 桁の小数点以下の数字を含み、必要な精度に応じて "s" の接尾辞が続きます。ナノ秒精度に収まれば、小数点以下の数字はどれでも受け付けます(ゼロでも可)し、接尾辞 "s" は必須です。範囲は -315,576,000,000 から 315,576,000,000 秒まで、両端を含みます。
例 デュレーション
{
"duration-9": "1.000340012s",
"duration-0": "1s"
}
バイト
バイトデータは、標準の Base64 エンコーディングを使用して、パディング付きの文字列としてエンコードされます。標準または URL セーフな Base64 エンコーディングが、パディングの有無にかかわらずサポートされています。
例 バイト
{
"bytes": "YWJjMTIzIT8kKiYoKSctRbLx+"
}
フィールドマスク
フィールドマスクは、リクエストを行う際に操作するフィールドを記述する文字列です。フィールドマスクを構築するには、文字列内にカンマ区切りの JSON フィールド名を指定します。以下の例を考えてみましょう:
例 JSON
{
"foo": {
"a": "c",
"b": "d"
},
"bar": "x",
"baz": "y"
}
foo.b と bar の値のみを更新するフィールドマスクを指定したい場合、フィールドマスクは次のようになります:foo.b, bar
Open Cloud では、フィールドマスクをサポートする更新メソッドには、updateMask と呼ばれるパラメータがあり、値としてフィールドマスクを指定できます。
マネー
通常、価格を定義するために使用される Money タイプは、三文字の通貨コード(ISO 4217 に定義されています)と数量を持ち、数量は Decimal タイプを使用します。例えば、$17.99 の価格を次のように表現することができます:
"myPrice": {
"currencyCode": "USD",
"quantity": {
"significand": 1799,
"exponent": -2
}
}
Creator Store の製品には exponent に -9 が必要なため、同じ価格は次のようになります:
"myPrice": {
"currencyCode": "USD",
"quantity": {
"significand": 17990000000,
"exponent": -9
}
}
デシマル
デシマルは、重要な数字と指数を用いた科学的表記に似た形で小数を表現します。
例:
17
{"significand": 17, "exponent": 0} または単に {"significand": 17}
-0.005
{"significand": -5, "exponent": -3}
3350 万 (33,500,000)
{"significand": 335, "exponent": 5}
11/8 (1.375)
{"significand": 1375, "exponent": -3}
exponent が 0 より大きい場合、重要な数字の後に続くゼロの数を表します。exponent が 0 より小さい場合、重要な数字のうち何桁が小数点の後に来るかを表します。exponent が 0 の場合、Decimal の値は significand の値と同じです。