Las máscaras de campo son una forma para que los llamadores de la API enumeren los campos que una solicitud debe mostrar o actualizar. El uso de FieldMask permite que la API evite el trabajo innecesario y mejore el rendimiento. Se usa una máscara de campo para los métodos de lectura y actualización en la API de Hojas de cálculo de Google.
Lee con una máscara de campo
Las hojas de cálculo pueden ser grandes y, a menudo, no necesitas que una solicitud de lectura muestre todas las partes del
Spreadsheet
recurso. Puedes limitar lo que se muestra en una respuesta de la API de Hojas de cálculo con el parámetro de URL fields. Para obtener el mejor
rendimiento, enumera explícitamente solo los campos que
necesitas en la respuesta.
El formato del parámetro fields es el mismo que la codificación JSON de un FieldMask. En resumen, varios campos diferentes están separados por comas y los subcampos están separados por puntos. Los nombres de los campos se pueden especificar en camelCase o separated_by_underscores. Para mayor comodidad, se pueden enumerar varios subcampos del mismo tipo entre paréntesis.
En el siguiente
spreadsheets.get
ejemplo de solicitud, se usa una máscara de campo de
sheets.properties(sheetId,title,sheetType,gridProperties) para recuperar solo el
ID de la hoja, el título,
SheetType,
y
GridProperties
de un objeto
SheetProperties
en todas las hojas de una hoja de cálculo:
GET https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId?fields=sheets.properties(sheetId,title,sheetType,gridProperties)
La respuesta a esta llamada al método es un
Spreadsheet
objeto que contiene los componentes solicitados en la máscara de campo. Ten en cuenta que sheetType=OBJECT no contiene gridProperties:
{
"sheets": [
{
"properties": {
"sheetId": SHEET_ID,
"title": "TITLE",
"sheetType": "GRID",
"gridProperties": {
"rowCount": 1000,
"columnCount": 25
}
}
},
{
"properties": {
"sheetId": SHEET_ID,
"title": "TITLE",
"sheetType": "OBJECT"
}
}
]
}Actualiza con una máscara de campo
A veces, necesitas actualizar solo ciertos campos en un objeto y no modificar los otros campos. Las solicitudes de actualización dentro de una
spreadsheets.batchUpdate
operación usan máscaras de campo para indicarle a la API qué campos se cambian. La solicitud de actualización ignora los campos que no se especifican en la máscara de campo, y los deja con sus valores actuales.
También puedes anular un campo si no lo especificas en el mensaje actualizado, pero agregas el campo a la máscara. Esto borra cualquier valor que el campo haya tenido anteriormente.
La sintaxis para actualizar las máscaras de campo es la misma que para leer las máscaras de campo.
En el siguiente ejemplo, se usa el
AddSheetRequest
para agregar una hoja nueva de tipo Grid, inmovilizar la primera fila y colorear de rojo la pestaña de la hoja nueva:
POST https://sheets.googleapis.com/v1/spreadsheets/spreadsheetId:batchUpdate
{
"spreadsheetId": "SPREADSHEET_ID",
"replies": [
{
"addSheet": {
"properties": {
"sheetId": SHEET_ID,
"title": "TITLE",
"index": 6,
"sheetType": "GRID",
"gridProperties": {
"rowCount": 1000,
"columnCount": 26,
"frozenRowCount": 1
},
"tabColor": {
"red": 0.003921569
},
"tabColorStyle": {
"rgbColor": {
"red": 0.003921569
}
}
}
}
}
]
}