As máscaras de campo são uma maneira de os autores de chamadas de API listarem os campos que uma solicitação deve retornar ou atualizar. Usar um FieldMask permite que a API evite trabalho desnecessário e melhore a performance. Uma máscara de campo é usada nos métodos de leitura e atualização da API Google Slides.
Para uma comparação do que é retornado em um corpo de resposta quando você não usa uma máscara de campo e quando usa, consulte Trabalhar com recursos parciais.
Ler com uma máscara de campo
As apresentações podem ser grandes, e muitas vezes você não precisa de todas as partes do recurso
presentations
retornado por uma solicitação de leitura. É possível limitar o que é retornado em uma resposta da API
Slides usando o parâmetro de URL fields. Para ter o melhor desempenho, liste explicitamente apenas os campos de que você precisa na resposta.
O formato do parâmetro "fields" é o mesmo da codificação JSON de um FieldMask. Em resumo, vários campos diferentes são separados por vírgulas, e subcampos são separados por pontos. Os nomes dos campos podem ser especificados em camelCase ou separados_por_sublinhados. Para facilitar, vários subcampos do mesmo tipo podem ser listados entre parênteses.
O exemplo de solicitação do método
presentations.get
a seguir usa uma máscara de campo de
slides.pageElements(objectId,size,transform) para buscar apenas o ID do objeto,
Size, e
transform
de um objeto
pageElement
em todos os slides de uma apresentação:
GET https://slides.googleapis.com/v1/presentations/presentationId?fields=slides.pageElements(objectId,size,transform)
A resposta a essa chamada de método é um
objeto presentations
que contém os componentes solicitados na máscara de campo:
{
"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"
}
}
]
}
]
}Atualizar com uma máscara de campo
Às vezes, é necessário atualizar apenas alguns campos em um objeto e deixar os
outros inalterados. As solicitações de atualização em um método
presentations.batchUpdate
usam máscaras de campo para informar à API quais campos estão sendo alterados. A solicitação de atualização ignora todos os campos que não estão especificados na máscara de campo, deixando-os com os valores atuais.
Também é possível remover a definição de um campo não especificando-o na mensagem atualizada, mas adicionando o campo à máscara. Isso limpa qualquer valor que o campo tinha antes.
A sintaxe das máscaras de campo de atualização é a mesma das máscaras de campo de leitura.
O exemplo a seguir usa o método
UpdateShapePropertiesRequest
para mudar o preenchimento de cor de uma forma para a cor do tema DARK1 e remover o contorno
da forma:
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"
}
}
]
}