Typ und Format

Mit den Eigenschaften type und format für Parameter und Schemas lässt sich der Datentyp der Property ermitteln. Das Attribut type gibt den Typ des Attributs an, wenn es in JSON-Anfragen und -Antworten gesendet wird. JSON unterstützt eine kleine Anzahl von Datentypen, siehe json.org. “ Das Attribut format enthält zusätzliche Informationen zum zugrunde liegenden Typ. Attribute haben immer ein type-Attribut, einige haben aber möglicherweise auch ein format-Attribut.

Beispielsweise können 64-Bit-Ganzzahlen nicht in JSON dargestellt werden, da JavaScript und JSON Ganzzahlen bis 2^53 unterstützen. Daher muss eine 64‑Bit-Ganzzahl in JSON-Anfragen/‑antworten als String dargestellt werden. Die Eigenschaft type wird also auf „string“ gesetzt, die Eigenschaft format jedoch auf „int64“, um anzugeben, dass es sich um eine 64‑Bit-Ganzzahl handelt.

Die JSON-Schemaspezifikation definiert bereits eine Reihe von gängigen Werten für das Attribut format. Der Google APIs Discovery Service unterstützt einige dieser Werte und definiert auch andere. Im Folgenden finden Sie eine vollständige Liste der type- und format-Werte, die vom Google APIs Discovery Service unterstützt werden.

Typwert Formatwert Bedeutung
any Das Attribut kann einen beliebigen Typ haben. Wird durch die JSON-Schemaspezifikation definiert.
any google.protobuf.Value Das Attribut hat die JSON-Darstellung des Typs google.protobuf.Value.
array Ein JavaScript-Array von Werten. Das Attribut items gibt das Schema für die Arraywerte an. Wird durch die JSON-Schemaspezifikation definiert.
array google.protobuf.ListValue Die Property hat die JSON-Darstellung des Typs google.protobuf.ListValue.
boolean Ein boolescher Wert, entweder "true" oder "false". Wird durch die JSON-Schemaspezifikation definiert.
integer int32 Eine vorzeichenbehaftete 32-Bit-Ganzzahl. Sie hat einen Mindestwert von -2,147,483,648 und einen Höchstwert von 2,147,483,647 (einschließlich).
integer uint32 Eine vorzeichenlose 32-Bit-Ganzzahl. Sie hat einen Mindestwert von 0 und einen Höchstwert von 4,294,967,295 (einschließlich).
number double Eine 64-Bit-IEEE 754-Gleitkommazahl mit doppelter Genauigkeit.
number float Eine 32-Bit-IEEE 754-Gleitkommazahl mit einfacher Genauigkeit.
object Ein JavaScript-Objekt. Wird durch die JSON-Schemaspezifikation definiert.
object google.protobuf.Struct Das Attribut hat die JSON-Darstellung des Typs google.protobuf.Struct.
object google.protobuf.Any Das Attribut hat die JSON-Darstellung des Typs google.protobuf.Any.
string Ein beliebiger String. Wird durch die JSON-Schemaspezifikation definiert.
string byte Ein aufgefüllter base64-codierter String aus Byte, der mit einem URL-sicheren und Dateinamen-sicheren Alphabet (auch als "web-safe" oder "base64url" bezeichnet) codiert ist. Definiert durch RFC4648.
string date Ein RFC3339-Datum im Format JJJJ-MM-TT. Wird in der JSON-Schemaspezifikation definiert.
string date-time Ein RFC3339-Zeitstempel in UTC-Zeit. Im Format JJJJ-MM-TTTHH:mm:ss.SSSZ. Der Millisekundenteil (".SSS") ist optional. Wird in der JSON-Schemaspezifikation definiert.
string google-datetime Ein RFC3339-Zeitstempel in UTC-Zeit. Im Format JJJJ-MM-TTTHH:mm:ss.SSSZ. Der Millisekundenteil (".SSS") ist optional.
string google-duration Ein String endet mit dem Suffix "s" (in Sekunden), wobei die Anzahl von Sekunden vorangestellt wird. Dabei werden die Nanosekunden als Sekundenbruchteile angegeben. Der Punkt wird immer als Dezimalzeichen verwendet, nicht das Komma.
string google-fieldmask Ein String, bei dem Feldnamen durch ein Komma getrennt sind. Feldnamen werden in Namenskonventionen mit kleingeschriebener Camel-Case-Schreibweise dargestellt.
string int64 Eine vorzeichenbehaftete 64-Bit-Ganzzahl. Sie hat einen Mindestwert von -9.223.372.036.854.775.808 und einen Höchstwert von 9.223.372.036.854.775.807 (einschließlich).
string uint64 Eine vorzeichenlose 64-Bit-Ganzzahl. Sie hat einen Mindestwert von 0 und einen Höchstwert von (2^64)-1 (einschließlich).