필드 마스크 사용

필드 마스크는 API 호출자가 요청이 처리해야 하는 필드를 나열하는 방법입니다. 반환할 수 있습니다. FieldMask API를 사용하면 불필요한 작업을 방지하고 성능을 개선할 수 있습니다. 필드 마스크 는 Google Slides API에서 읽기 및 업데이트 메서드에 모두 사용됩니다.

필드 마스크를 사용하여 읽기

프레젠테이션은 클 수 있으며, 프레젠테이션의 모든 부분이 Presentation 읽기 요청에서 반환한 리소스입니다. 반환되는 결과를 fields URL 매개변수를 사용한 Slides API 응답 최고의 성능 실적, 필요한 필드만 명시적으로 나열 답장에 추가해 주세요.

필드 매개변수의 형식은 FieldMask의 JSON 인코딩입니다. 간단히 말하면, 서로 다른 여러 필드는 쉼표로 구분되며 하위 필드는 점으로 구분됩니다. 필드 이름은 camelCase 또는 separated_by_underscores됩니다. 편의상 동일한 필드의 여러 하위 필드가 유형은 괄호 안에 나열할 수 있습니다.

다음 presentations.get 요청 예시는 다음과 같은 필드 마스크를 사용합니다. slides.pageElements(objectId,size,transform): 객체 ID만 가져옵니다. Size변환 pageElement의 객체에 추가합니다.

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

이 메서드 호출에 대한 응답은 Presentation 객체 필드 마스크에 요청된 구성요소가 포함되어 있습니다.

{
  "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"
          }
        }
     ]
    }
  ]
}

필드 마스크를 사용한 업데이트

객체의 특정 필드만 업데이트하면서 다른 필드는 변경되지 않았습니다. 내부의 업데이트 요청 presentations.batchUpdate 작업은 필드 마스크를 사용하여 변경 중인 필드를 API에 알립니다. 이 업데이트 요청은 필드 마스크에 지정되지 않은 모든 필드를 무시하므로 현재 값을 그대로 둡니다

업데이트된 메시지에서 필드를 지정하지 않고 필드를 설정 해제할 수도 있지만 마스크에 필드를 추가합니다 이렇게 하면 이전에 필드의 값이 무엇이든 지워집니다. 있습니다.

업데이트 필드 마스크의 구문은 읽기 필드 마스크와 동일합니다.

다음 예에서는 UpdateShapePropertiesRequest 도형의 색상 채우기를 DARK1 테마 색상으로 변경하고 도형의 개요:

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"
      }
    }
  ]
}