type と format

パラメータとスキーマの type プロパティと format プロパティを使用すると、プロパティのデータ型を決めることができます。type プロパティは、JSON リクエストとレスポンスで送信されるプロパティの型を表します(JSON は少数のデータ型をサポートしています。詳しくは json.org をご覧ください)。format プロパティは、基になる型に関する追加情報を提供します。プロパティには必ず type プロパティがありますが、format プロパティは常に存在するとは限りません。

たとえば、64 ビットの整数は JSON で表現できません(JavaScript と JSON がサポートしている整数は 2^53 までです)。JSON のリクエスト / レスポンスでは 64 ビットの整数を文字列として表す必要があります。このため、type プロパティは string に設定されますが、64 ビット整数であることを示すため format プロパティには int64 が設定されます。

JSON スキーマ仕様では、format プロパティの共通の値セットがすでに定義されています。Google API 検出サービスは、これらの値のいくつかをサポートし、他の値も定義します。Google API 検出サービスでサポートされている type 値と format 値の完全なリストは、以下のとおりです。

Type 値 Format 値 意味
any このプロパティには任意の型を指定できます。JSON スキーマ仕様で定義されています。
array JavaScript 配列。items プロパティは配列値のスキーマを示します。JSON スキーマ仕様で定義されています。
boolean ブール値(true または false)。JSON スキーマ仕様で定義されています。
integer int32 32 ビット符号付き整数。最小値は -2,147,483,648、最大値は 2,147,483,647 です。
integer uint32 32 ビット符号なし整数。最小値は 0、最大値は 4,294,967,295 です(それぞれの両端を含みます)。
number double 倍精度 64 ビット IEEE 754 浮動小数点。
number float 単精度 32 ビット IEEE 754 浮動小数点。
object JavaScript オブジェクト。JSON スキーマ仕様で定義されています。
string 任意の文字列。JSON スキーマ仕様で定義されています。
string byte パディングされた Base64 エンコードのバイト文字列。URL およびファイル名のセーフ型でエンコードされます(ウェブセーフ、base64url と呼ばれることもあります)。RFC 4648 で定義されています。
string date RFC3339 の日付(YYYY-MM-DD 形式)。JSON スキーマ仕様で定義されています。
string date-time RFC 3339 タイムスタンプ(UTC 時間)。形式は yyyy-MM-ddTHH:mm:ss.SSSZ です。ミリ秒部分(.SSS)は省略可能です。JSON スキーマ仕様で定義されています。
string google-datetime RFC 3339 タイムスタンプ(UTC 時間)。形式は yyyy-MM-ddTHH:mm:ss.SSSZ です。ミリ秒部分(.SSS)は省略可能です。
string google-duration 文字列の最後は秒数で、末尾に秒を表す s が付きます。ナノ秒は、小数点以下の秒数で表します。小数点にはカンマではなく、ピリオドを使用します。
string google-fieldmask フィールド名がカンマで区切られた文字列。フィールド名は、小文字のキャメルケースで表します。
string int64 64 ビット符号付き整数。最小値は -9,223,372,036,854,775,808、最大値は 9,223,372,036,854,775,807 です(それぞれの両端を含みます)。
string uint64 64 ビット符号なし整数。最小値は 0、最大値は (2^64)-1 です(それぞれの両端を含みます)。