Open Cloud représente les paquets de requête et de réponse comme JSON standard.Les types JSON standards sont du texte, des valeurs, des objets, des tableaux, des nombres et des chaînes.Certains types ont des considérations spéciales pour représenter des types spécifiques de données, qui sont décrites dans les sections suivantes.
Date et heure
Utilise RFC 3339, où la sortie générée sera toujours normalisée en Z et utilisera 0, 3, 6 ou 9 décimales fractionnaires. Les décalages autres que "Z" sont également acceptés.
Exemple de date et heure
{ "timestamp": "1972-01-01T10:00:20.021Z" }
Durée
La sortie générée contient toujours 0, 3, 6 ou 9 chiffres décimaux, selon la précision requise, suivi du suffixe "s".Acceptés sont tous les chiffres décimaux (aussi aucun) tant qu'ils s'insèrent dans la précision des nanosecondes et que le suffixe "s" est requis.La portée doit être comprise entre -315,576,000,000 et 315,576,000,000 secondes, incluses.
Durées d'exemple
{
"duration-9": "1.000340012s",
"duration-0": "1s"
}
Octets
Les données d'octet sont codées en tant que chaîne en utilisant l'encodage base64 standard avec des espaces.L'encodage base64 standard ou sécurisé pour les URLs avec ou sans espaces est pris en charge.
Exemples de octets
{
"bytes": "YWJjMTIzIT8kKiYoKSctRbLx+"
}
Masque de champ
Un masque de champ est une chaîne qui décrit les champs sur lesquels agir lors de la création d'une demande.Pour construire un masque de champ, vous spécifiez les noms de champ JSON délimités par des virgules dans une chaîne.Par exemple, en raison de la ressource suivante :
Ressource JSON d'exemple
{
"foo": {
"a": "c",
"b": "d"
},
"bar": "x",
"baz": "y"
}
Si vous vouliez spécifier un masque de champ pour mettre à jour les valeurs de seulement foo.b et bar, le masque de champ ressemblerait à : foo.b, bar
Dans le cloud ouvert, les méthodes de mise à jour qui supportent un masque de champ ont un paramètre nommé updateMask, où vous pouvez spécifier un masque de champ comme valeur.
Argent
Généralement utilisé pour définir un prix, le type Money a un code de devise à trois lettres (comme défini dans ISO 4217) et une quantité, qui utilise le taperDecimal.Par exemple, vous pouvez représenter un prix de 17,99 $ comme ceci :
"myPrice": {
"currencyCode": "USD",
"quantity": {
"significand": 1799,
"exponent": -2
}
}
Les produits de la boutique des créateurs nécessitent un exponent de -9, donc le même prix ressemble à ceci :
"myPrice": {
"currencyCode": "USD",
"quantity": {
"significand": 17990000000,
"exponent": -9
}
}
Décialimal
Représente un nombre décimal sous une forme similaire à la notation scientifique, avec des chiffres significatifs et une exponentielle.
Exemples :
17
{"significand": 17, "exponent": 0} ou simplement {"significand": 17}
-0.005
{"significand": -5, "exponent": -3}
33,5 millions (33,500,000)
{"significand": 335, "exponent": 5}
11/8 (1.375)
{"significand": 1375, "exponent": -3}
Lorsque exponent est supérieur à 0, il représente le nombre de zéros arrières après les chiffres significatifs.Lorsque exponent est inférieur à 0, il représente le nombre de chiffres significatifs qui suivent le point décimal.Lorsque exponent est 0, la valeur du Decimal est la valeur du significand.