Utiliser des masques de champ

Les masques de champ permettent aux appelants d'API de lister les champs qu'une requête doit renvoyer ou mettre à jour. Avec un FieldMask permet à l'API d'éviter les tâches inutiles et d'améliorer les performances. Un masque de champ est utilisé à la fois pour les méthodes de lecture et de mise à jour dans l'API Google Slides.

Lire avec un masque de champ

Les présentations peuvent être volumineuses et, souvent, vous n'avez pas besoin de chaque partie Presentation ressource renvoyée par une requête de lecture. Vous pouvez limiter ce qui est renvoyé Réponse de l'API Slides, à l'aide du paramètre d'URL fields. Pour un meilleur les performances, n'indiquer explicitement que les champs dont vous avez besoin. dans la réponse.

Le format du paramètre "fields" est identique à celui du paramètre Encodage JSON d'un FieldMask. En bref, plusieurs champs différents sont séparés par une virgule et les sous-champs sont séparés par un point. Les noms de champs peuvent être spécifiés en camelCase ou separated_by_underscores. Pour plus de commodité, plusieurs sous-champs du même peut être indiqué entre parenthèses.

Les presentations.get suivants de requête utilise un masque de champ slides.pageElements(objectId,size,transform) pour ne récupérer que l'ID de l'objet, Size transformer d'un pageElement sur toutes les diapositives d'une présentation:

GET https://slides.googleapis.com/v1/presentations/presentationId?fields=slides.pageElements(objectId,size,transform)

La réponse à cet appel de méthode Objet Presentation contenant les composants demandés dans le masque de champ:

{
  "slides": [
    {
      "pageElements": [
        {
          "objectId": "OBJECT_ID",
          "size": {
            "width": {
              "magnitude": 3000000,
              "unit": "EMU"
            },
            "height": {
              "magnitude": 3000000,
              "unit": "EMU"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1
            "translateX": 311708,
            "translateY": 744575,
            "unit": "EMU"
          }
        },
        {
          "objectId": "OBJECT_ID",
          "size": {
            "width": {
              "magnitude": 3000000,
              "unit": "EMU"
            },
            "height": {
              "magnitude": 3000000,
              "unit": "EMU"
            }
          },
          "transform": {
            "scaleX": 1,
            "scaleY": 1
            "translateX": 311700,
            "translateY": 2834125,
            "unit": "EMU"
          }
        }
     ]
    }
  ]
}

Mettre à jour avec un masque de champ

Parfois, vous ne devez mettre à jour que certains champs d'un objet tout en laissant et les autres champs restent inchangés. Les requêtes de mise à jour dans un presentations.batchUpdate opération utilise des masques de champ pour indiquer à l'API quels champs sont modifiés. La "update request" ignore les champs non spécifiés dans le masque de champ. en leur laissant leurs valeurs actuelles.

Vous pouvez aussi annuler la définition d'un champ en ne le spécifiant pas dans le message mis à jour, en ajoutant le champ au masque. La valeur du champ précédente est effacée dont il disposait.

La syntaxe des masques de champ de mise à jour est la même que celle des masques de champ de lecture.

L'exemple suivant utilise la classe UpdateShapePropertiesRequest pour remplacer la couleur de remplissage d'une forme par la couleur du thème DARK1 et annuler la définition de l'attribut aperçu:

POST https://slides.googleapis.com/v1/presentations/presentationId:batchUpdate
{
  "requests": [
    {
      "updateShapeProperties": {
        "objectId": OBJECT_ID,
        "shapeProperties": {
          "shapeBackgroundFill": {
            "solidFill": {
              "color": {
                "themeColor": "DARK1"
              }
            }
          }
        },
        "fields": "shapeBackgroundFill.solidFill.color,outline"
      }
    }
  ]
}