Open Cloud représente les charges utiles de requête et de réponse sous forme de JSON standard. Les types JSON standard sont texte, valeurs, objets, tableaux, nombres et chaînes. Certains types ont des considérations spéciales pour représenter des types de données spécifiques, qui sont décrites dans les sections suivantes.
Horodatage
Utilise RFC 3339, où la sortie générée sera toujours normalisée en Z et utilise 0, 3, 6 ou 9 chiffres fractionnaires. Les décalages autres que "Z" sont également acceptés.
Exemple d'Horodatage
{ "timestamp": "1972-01-01T10:00:20.021Z" }
Durée
La sortie générée contient toujours 0, 3, 6 ou 9 chiffres fractionnaires, selon la précision requise, suivis du suffixe "s". Les chiffres fractionnaires (y compris aucun) sont acceptés tant qu'ils tiennent dans la précision des nanosecondes et le suffixe "s" est requis. La plage doit être de -315,576,000,000 à 315,576,000,000 secondes, inclusivement.
Exemples de Durées
{
"duration-9": "1.000340012s",
"duration-0": "1s"
}
Octets
Les données d'octets sont encodées en tant que chaîne en utilisant le codage base64 standard avec des espacements. Soit le codage base64 standard, soit le codage base64 sécurisé pour les URL avec ou sans espacements sont pris en charge.
Exemple d'Octets
{
"bytes": "YWJjMTIzIT8kKiYoKSctRbLx+"
}
ChampMasque
Un ChampMasque est une chaîne qui décrit les champs à traiter lors d'une requête. Pour construire un masque de champ, vous spécifiez des noms de champs JSON délimités par des virgules dans une chaîne. Par exemple, étant donné ce qui suit :
Exemple JSON
{
"foo": {
"a": "c",
"b": "d"
},
"bar": "x",
"baz": "y"
}
Si vous vouliez spécifier un masque de champ pour mettre à jour les valeurs de foo.b et bar uniquement, le masque de champ ressemblerait à : foo.b, bar
Dans Open Cloud, les méthodes de mise à jour qui prennent en charge un masque de champ ont un paramètre nommé updateMask, où vous pouvez spécifier un masque de champ en tant que valeur.
Argent
Généralement utilisé pour définir un prix, le type Money a un code de devise à trois lettres (tel que défini dans l'ISO 4217) et une quantité, qui utilise le type Decimal. Par exemple, vous pourriez représenter un prix de 17,99 $ comme ceci :
"myPrice": {
"currencyCode": "USD",
"quantity": {
"significand": 1799,
"exponent": -2
}
}
Les produits du Creator Store nécessitent un exponent de -9, donc le même prix ressemble à ceci :
"myPrice": {
"currencyCode": "USD",
"quantity": {
"significand": 17990000000,
"exponent": -9
}
}
Décimal
Représente un nombre décimal sous une forme similaire à la notation scientifique, avec des chiffres significatifs et un exposant.
Exemples :
17
{"significand": 17, "exponent": 0} ou juste {"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 à la fin après les chiffres significatifs. Lorsque exponent est inférieur à 0, il représente combien des chiffres significatifs se situent après le point décimal. Lorsque exponent est 0, la valeur du Decimal est la valeur du significand.