ফিল্ড মাস্ক হলো এপিআই ব্যবহারকারীদের জন্য একটি উপায়, যার মাধ্যমে তারা অনুরোধের মাধ্যমে ফেরত বা আপডেট করা হবে এমন ফিল্ডগুলোর তালিকা তৈরি করতে পারে। ফিল্ডমাস্ক ব্যবহার করে এপিআই অপ্রয়োজনীয় কাজ এড়াতে পারে এবং এর পারফরম্যান্স উন্নত হয়। গুগল শিটস এপিআই-এর রিড এবং আপডেট উভয় মেথডের জন্যই ফিল্ড মাস্ক ব্যবহার করা হয়।
ফিল্ড মাস্ক দিয়ে পড়ুন
স্প্রেডশিটগুলো আকারে বড় হতে পারে, এবং প্রায়শই একটি রিড রিকোয়েস্টের মাধ্যমে প্রাপ্ত Spreadsheet রিসোর্সের প্রতিটি অংশের আপনার প্রয়োজন হয় না। আপনি fields ইউআরএল প্যারামিটার ব্যবহার করে একটি শীটস এপিআই রেসপন্সে কী কী ফেরত আসবে তা সীমিত করতে পারেন। সর্বোত্তম পারফরম্যান্সের জন্য, রিপ্লাইতে শুধুমাত্র আপনার প্রয়োজনীয় ফিল্ডগুলো স্পষ্টভাবে তালিকাভুক্ত করুন ।
`fields` প্যারামিটারের ফরম্যাটটি `FieldMask`-এর JSON এনকোডিং- এর মতোই। সংক্ষেপে বলতে গেলে, একাধিক ভিন্ন ফিল্ড কমা দিয়ে এবং সাবফিল্ডগুলো ডট দিয়ে আলাদা করা হয়। ফিল্ডের নাম ক্যামেলকেস (camelCase) বা আন্ডারস্কোর দিয়ে আলাদা করে উল্লেখ করা যেতে পারে। সুবিধার জন্য, একই ধরনের একাধিক সাবফিল্ড বন্ধনীর মধ্যে তালিকাভুক্ত করা যেতে পারে।
নিম্নলিখিত spreadsheets.get অনুরোধের উদাহরণটি একটি স্প্রেডশীটের সমস্ত শীট থেকে একটি SheetProperties অবজেক্টের শুধুমাত্র শীট আইডি, শিরোনাম, SheetType এবং GridProperties আনার জন্য sheets.properties(sheetId,title,sheetType,gridProperties) এর একটি ফিল্ড মাস্ক ব্যবহার করে:
GET https://sheets.googleapis.com/v4/spreadsheets/spreadsheetId?fields=sheets.properties(sheetId,title,sheetType,gridProperties)
এই মেথড কলের প্রতিক্রিয়া হলো একটি Spreadsheet অবজেক্ট, যাতে ফিল্ড মাস্কে অনুরোধ করা উপাদানগুলো থাকে। উল্লেখ্য যে, sheetType=OBJECT gridProperties থাকে না:
{
"sheets": [
{
"properties": {
"sheetId": SHEET_ID,
"title": "TITLE",
"sheetType": "GRID",
"gridProperties": {
"rowCount": 1000,
"columnCount": 25
}
}
},
{
"properties": {
"sheetId": SHEET_ID,
"title": "TITLE",
"sheetType": "OBJECT"
}
}
]
}ফিল্ড মাস্ক দিয়ে আপডেট করুন
কখনও কখনও একটি অবজেক্টের অন্যান্য ফিল্ড অপরিবর্তিত রেখে শুধুমাত্র নির্দিষ্ট কিছু ফিল্ড আপডেট করার প্রয়োজন হয়। spreadsheets.batchUpdate অপারেশনের ভেতরের আপডেট রিকোয়েস্টগুলো কোন ফিল্ডগুলো পরিবর্তন করা হচ্ছে তা API-কে জানানোর জন্য ফিল্ড মাস্ক ব্যবহার করে। আপডেট রিকোয়েস্টটি ফিল্ড মাস্কে নির্দিষ্ট করা নেই এমন যেকোনো ফিল্ডকে উপেক্ষা করে এবং সেগুলোকে তাদের বর্তমান মানসহ রেখে দেয়।
আপনি আপডেট করা মেসেজে কোনো ফিল্ড উল্লেখ না করে, কিন্তু মাস্কে ফিল্ডটি যোগ করার মাধ্যমেও সেটিকে আনসেট করতে পারেন। এর ফলে ফিল্ডটির পূর্ববর্তী মান মুছে যায়।
ফিল্ড মাস্ক আপডেট করার সিনট্যাক্স, ফিল্ড মাস্ক রিড করার সিনট্যাক্সের মতোই।
নিম্নলিখিত উদাহরণটি AddSheetRequest ব্যবহার করে Grid টাইপের একটি নতুন শীট যোগ করে, প্রথম সারিটি স্থির করে এবং নতুন শীটটির ট্যাবকে লাল রঙ করে:
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
}
}
}
}
}
]
}