Alan maskeleri, API arayanlarının bir isteğin döndürmesi veya güncellemesi gereken alanları listelemesinin bir yoludur. FieldMask kullanmak API'nin gereksiz işlerden kaçınmasını sağlar ve performansı artırır. Alan maskesi, Google E-Tablolar API'sinde hem okuma hem de güncelleme yöntemleri için kullanılır.
Alan maskesiyle okuma
E-tablolar büyük boyutlu olabilir ve genellikle Spreadsheet
kaynağının okuma isteği tarafından döndürülen tüm kısımlarına ihtiyacınız olmaz. E-Tablolar API yanıtında nelerin döndürüleceğini fields
URL parametresini kullanarak sınırlayabilirsiniz. En iyi performans için yanıtta yalnızca ihtiyacınız olan alanları açıkça listeleyin.
Domains parametresinin biçimi, FieldMask'in JSON kodlamasıyla aynıdır. Özetle, birden fazla farklı alan virgülle ve alt alanlar ise noktalarla ayrılır. Alan adları, camelCase veya sold_by_underscores ile belirtilebilir. Kolaylık sağlaması açısından, aynı türden birden fazla alt alan parantez içinde listelenebilir.
Aşağıdaki spreadsheets.get
istek örneğinde, bir e-tablodaki tüm sayfalardaki SheetProperties
nesnesinin yalnızca sayfa kimliği, başlığı, SheetType
ve GridProperties
nesnesini getirmek için sheets.properties(sheetId,title,sheetType,gridProperties)
alan maskesi kullanılmaktadır:
GET https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId?fields=sheets.properties(sheetId,title,sheetType,gridProperties)
Bu yöntem çağrısının yanıtı, alan maskesinde istenen bileşenleri içeren bir Spreadsheet
nesnesidir. sheetType=OBJECT
değerinin gridProperties
içermediğini unutmayın:
{ "sheets": [ { "properties": { "sheetId":SHEET_ID
, "title": "TITLE
", "sheetType": "GRID", "gridProperties": { "rowCount": 1000, "columnCount": 25 } } }, { "properties": { "sheetId":SHEET_ID
, "title": "TITLE
", "sheetType": "OBJECT" } } ] }
Alan maskesiyle güncelle
Bazen bir nesnedeki yalnızca belirli alanları güncellemeniz gerekir. Diğer alanları ise değiştirmeden bırakırsınız. Bir spreadsheets.batchUpdate
işlemi içindeki güncelleme istekleri, API'ye hangi alanların değiştirildiğini bildirmek için alan maskelerini kullanır. Güncelleme isteği, alan maskesinde belirtilmeyen tüm alanları yok sayar ve mevcut değerleriyle kalır.
Bir alanı, güncellenen mesajda belirtmeden alanı maskeye ekleyerek de ayarı kaldırabilirsiniz. Bu, alanın önceden sahip olduğu değeri temizler.
Güncelleme alan maskelerinin söz dizimi, okunan alan maskeleriyle aynıdır.
Aşağıdaki örnekte Grid
türünde yeni bir sayfa eklemek, ilk satırı dondurmak ve yeni sayfanın sekmesini kırmızıya boyamak için AddSheetRequest
kullanılmıştır:
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 } } } } } ] }