Open Cloud representa las cargas útiles de solicitud y respuesta como JSON estándar. Los tipos de JSON estándar son texto, valores, objetos, arreglos, números y cadenas. Algunos tipos tienen consideraciones especiales para representar tipos específicos de datos, que se describen en las siguientes secciones.
Marca de tiempo
Usa RFC 3339, donde la salida generada siempre estará normalizada en Z y usará 0, 3, 6 o 9 dígitos fraccionarios. También se aceptan desplazamientos distintos de "Z".
Ejemplo de Marca de Tiempo
{ "timestamp": "1972-01-01T10:00:20.021Z" }
Duración
La salida generada siempre contiene 0, 3, 6 o 9 dígitos fraccionarios, dependiendo de la precisión requerida, seguida del sufijo "s". Se aceptan cualquier dígito fraccionario (también ninguno) siempre y cuando se ajuste a la precisión de nano-segundos y se requiere el sufijo "s". El rango debe estar entre -315,576,000,000 y 315,576,000,000 segundos, inclusive.
Ejemplo de Duraciones
{
"duration-9": "1.000340012s",
"duration-0": "1s"
}
Bytes
Los datos de bytes están codificados como una cadena utilizando la codificación base64 estándar con rellenos. Se admiten codificaciones base64 estándar o seguras para URL con o sin rellenos.
Ejemplo de Bytes
{
"bytes": "YWJjMTIzIT8kKiYoKSctRbLx+"
}
FieldMask
Un FieldMask es una cadena que describe los campos sobre los cuales actuar al hacer una solicitud. Para construir una máscara de campo, se especifican los nombres de los campos JSON delimitados por comas en una cadena. Por ejemplo, dado lo siguiente:
Ejemplo de JSON
{
"foo": {
"a": "c",
"b": "d"
},
"bar": "x",
"baz": "y"
}
Si quisieras especificar una máscara de campo para actualizar los valores de solo foo.b y bar, la máscara de campo se vería así: foo.b, bar
En Open Cloud, los métodos de actualización que admiten una máscara de campo tienen un parámetro llamado updateMask, donde puedes especificar una máscara de campo como un valor.
Dinero
Generalmente se usa para definir un precio, el tipo Money tiene un código de moneda de tres letras (según lo definido en ISO 4217) y una cantidad, que utiliza el tipo Decimal. Por ejemplo, podrías representar un precio de $17.99 así:
"myPrice": {
"currencyCode": "USD",
"quantity": {
"significand": 1799,
"exponent": -2
}
}
Los productos de la Tienda del Creador requieren un exponent de -9, por lo que el mismo precio se ve así:
"myPrice": {
"currencyCode": "USD",
"quantity": {
"significand": 17990000000,
"exponent": -9
}
}
Decimal
Representa un número decimal en una forma similar a la notación científica, con dígitos significativos y un exponente.
Ejemplos:
17
{"significand": 17, "exponent": 0} o simplemente {"significand": 17}
-0.005
{"significand": -5, "exponent": -3}
33.5 millones (33,500,000)
{"significand": 335, "exponent": 5}
11/8 (1.375)
{"significand": 1375, "exponent": -3}
Cuando exponent es mayor que 0, representa el número de ceros finales después de los dígitos significativos. Cuando exponent es menor que 0, representa cuántos de los dígitos significativos vienen después del punto decimal. Cuando exponent es 0, el valor del Decimal es el valor del significand.