オープンクラウドは、リクエストとレスポンスのペイロードを 標準 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
オープンクラウドでは、フィールドマスクをサポートする更新方法には、値としてフィールドマスクを指定できるパラメータ updateMask があります。
マネー
一般的に価格を定義するために使用される Money タイプには、ISO 4217 で定義された三文字の通貨コードと量があり、Decimal タイプを使用します。たとえば、次のような $17.99 の価格を表現できます:
"myPrice": {
"currencyCode": "USD",
"quantity": {
"significand": 1799,
"exponent": -2
}
}
クリエイターストアの製品には、-9 の exponent が必要ですので、同じ価格は次のようになります:
"myPrice": {
"currencyCode": "USD",
"quantity": {
"significand": 17990000000,
"exponent": -9
}
}
デシマル
科学記号に似た形式で、重要な桁と指数を持つ 10 進数を表現します。
例:
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}
When exponent が 0 より大きい場合、重要な桁の後のゼロの数を表します。When exponent が 0 未満の場合、重要な桁が小数点の後にどれくらい来るかを表します。When exponent が 0 のとき、Decimal の値は significand の値です。