Тип и формат

Свойства type и format параметров и схем можно использовать для определения типа данных свойства. Свойство type указывает тип свойства при его отправке в JSON-запросах и ответах (JSON поддерживает небольшой набор типов данных, подробности см. на сайте json.org ). Свойство format предоставляет дополнительную информацию о базовом типе. Свойства всегда имеют свойство type , но некоторые могут также иметь свойство format .

Например, 64-битное целое число не может быть представлено в формате JSON (поскольку JavaScript и JSON поддерживают целые числа до 2^53). Поэтому в запросах/ответах JSON 64-битное целое число должно быть представлено строкой. Поэтому свойство type будет установлено на «string», а свойство format — на «int64», что указывает на то, что это 64-битное целое число.

Спецификация JSON Schema уже определяет набор общих значений для свойства format . Служба обнаружения API Google поддерживает некоторые из этих значений, а также определяет другие. Полный список значений type и format , поддерживаемых службой обнаружения API Google, представлен ниже.

Введите значение Значение формата Значение
any Свойство может иметь любой тип. Определено спецификацией JSON Schema .
any google.protobuf.Value Свойство имеет JSON-представление типа google.protobuf.Value .
array Массив значений JavaScript. Свойство items указывает схему значений массива. Определено спецификацией JSON Schema.
array google.protobuf.ListValue Свойство имеет JSON-представление типа google.protobuf.ListValue .
boolean Логическое значение, «истина» или «ложь». Определено спецификацией JSON Schema.
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 Schema.
object google.protobuf.Struct Свойство имеет JSON-представление типа google.protobuf.Struct .
object google.protobuf.Any Свойство имеет JSON-представление типа google.protobuf.Any .
string Произвольная строка. Определена спецификацией JSON Schema.
string byte Дополненная строка байтов в кодировке Base64, закодированная с использованием безопасного алфавита URL и имён файлов (иногда называемая «web-safe» или «base64url»). Определена в RFC4648 .
string date Дата RFC3339 в формате ГГГГ-ММ-ДД. Определена в спецификации JSON Schema.
string date-time Временная метка RFC3339 в формате UTC. Формат: гггг-MM-ddTHH:мм:сс.SSSZ. Миллисекунды (".SSS") необязательны. Определено в спецификации JSON Schema.
string google-datetime Временная метка RFC3339 в формате UTC. Формат: гггг-MM-ddTHH:мм:сс.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 (включительно).