ফিল্ড মাস্ক ব্যবহার করুন, ফিল্ড মাস্ক ব্যবহার করুন

ফিল্ড মাস্ক হল API কলারদের জন্য একটি উপায় যেখানে তারা কোন ফিল্ডগুলি ফেরত পাঠানো বা আপডেট করা উচিত তা তালিকাভুক্ত করে। FieldMask ব্যবহার করলে API অপ্রয়োজনীয় কাজ এড়াতে পারে এবং কর্মক্ষমতা উন্নত করে। Google Docs API-তে পঠন এবং আপডেট উভয় পদ্ধতির জন্য একটি ফিল্ড মাস্ক ব্যবহার করা হয়।

ফিল্ড মাস্ক পরে পড়ুন

ডকুমেন্টগুলি বড় হতে পারে এবং প্রায়শই আপনার Document রিসোর্সের প্রতিটি অংশ পঠনের অনুরোধের মাধ্যমে ফেরত দেওয়ার প্রয়োজন হয় না। আপনি fields URL প্যারামিটার ব্যবহার করে Docs API প্রতিক্রিয়ায় কী ফেরত দেওয়া হয়েছে তা সীমাবদ্ধ করতে পারেন। সেরা পারফরম্যান্সের জন্য, উত্তরে আপনার প্রয়োজনীয় ক্ষেত্রগুলি স্পষ্টভাবে তালিকাভুক্ত করুন

ফিল্ডস প্যারামিটারের ফর্ম্যাটটি FieldMask এর JSON এনকোডিংয়ের মতোই। সংক্ষেপে বলতে গেলে, একাধিক ভিন্ন ফিল্ড কমা দ্বারা পৃথক করা হয় এবং সাবফিল্ডগুলি ডট-বিচ্ছিন্ন করা হয়। ফিল্ডের নাম camelCase অথবা separated_by_underscores এ উল্লেখ করা যেতে পারে। সুবিধার জন্য, একই ধরণের একাধিক সাবফিল্ড বন্ধনীর মধ্যে তালিকাভুক্ত করা যেতে পারে।

নিম্নলিখিত documents.get request উদাহরণে title,tabs(documentTab(body.content(paragraph))),revisionId এর একটি ফিল্ড মাস্ক ব্যবহার করা হয়েছে যাতে ডকুমেন্টের title , একটি Body অবজেক্টের Paragraph (সকল ট্যাব থেকে) এবং ডকুমেন্টের revisionId একটি ডকুমেন্টের মধ্যে আনা যায়:

GET https://docs.googleapis.com/v1/documents/documentId?fields=title,tabs(documentTab(body.content(paragraph))),revisionId

এই মেথড কলের প্রতিক্রিয়া হল একটি Document অবজেক্ট যাতে ফিল্ড মাস্কে অনুরোধ করা উপাদানগুলি থাকে:

{
  "title": "TITLE",
  "revisionId": "REVISION_ID",
  "tabs": [
    {
      "documentTab": {
        "body": {
          "content": [
            {},
            {
              "paragraph": {
                "elements": [
                  {
                    "startIndex": 1,
                    "endIndex": 59,
                    "textRun": {
                      "content": "CONTENT",
                      "textStyle": {}
                    }
                  }
                ],
                "paragraphStyle": {
                  "namedStyleType": "NORMAL_TEXT",
                  "direction": "LEFT_TO_RIGHT"
                }
              }
            }
          ]
        }
      }
    }
  ]
}

ফিল্ড মাস্ক দিয়ে আপডেট করুন

কখনও কখনও আপনাকে একটি অবজেক্টের মধ্যে শুধুমাত্র নির্দিষ্ট কিছু ক্ষেত্র আপডেট করতে হবে এবং অন্যান্য ক্ষেত্রগুলি অপরিবর্তিত রাখতে হবে। documents.batchUpdate অপারেশনের ভিতরে আপডেট অনুরোধগুলি API কে জানাতে ফিল্ড মাস্ক ব্যবহার করে কোন ক্ষেত্রগুলি পরিবর্তন করা হচ্ছে। আপডেট অনুরোধটি ফিল্ড মাস্কে নির্দিষ্ট না থাকা যেকোনো ক্ষেত্রকে উপেক্ষা করে, তাদের বর্তমান মানগুলি রেখে দেয়।

আপনি আপডেট করা বার্তায় কোনও ক্ষেত্র নির্দিষ্ট না করে, মাস্কে ক্ষেত্রটি যুক্ত করেও এটি আনসেট করতে পারেন। এটি ক্ষেত্রটির পূর্বে যে মান ছিল তা সাফ করে।

আপডেট ফিল্ড মাস্কের সিনট্যাক্স রিড ফিল্ড মাস্কের মতোই।

নিচের উদাহরণে UpdateTextStyleRequest ব্যবহার করে ডকুমেন্টে "Google Docs API" শব্দগুলিকে 5-20 range মধ্যে গাঢ় করে স্টাইল করা হয়েছে:

POST https://docs.googleapis.com/v1/documents/documentId:batchUpdate
{
  "title": "TITLE",
  "revisionId": "REVISION_ID",
  "suggestionsViewMode": "SUGGESTIONS_INLINE",
  "documentId": "DOCUMENT_ID",
  "tabs": [
    {
      "documentTab": {
        "body": {
          "content": [
            {
              "endIndex": 1,
              "sectionBreak": {
                "sectionStyle": {
                  "columnSeparatorStyle": "NONE",
                  "contentDirection": "LEFT_TO_RIGHT",
                  "sectionType": "CONTINUOUS"
                }
              }
            },
            {
              "startIndex": 1,
              "endIndex": 59,
              "paragraph": {
                "elements": [
                  {
                    "startIndex": 1,
                    "endIndex": 5,
                    "textRun": {
                      "content": "CONTENT",
                      "textStyle": {}
                    }
                  },
                  {
                    "startIndex": 5,
                    "endIndex": 20,
                    "textRun": {
                      "content": "CONTENT",
                      "textStyle": {
                        "bold": true
                      }
                    }
                  },
                  {
                    "startIndex": 20,
                    "endIndex": 59,
                    "textRun": {
                      "content": "CONTENT",
                      "textStyle": {}
                    }
                  }
                ],
                "paragraphStyle": {
                  "namedStyleType": "NORMAL_TEXT",
                  "direction": "LEFT_TO_RIGHT"
                }
              }
            }
          ]
        },
        {
          ... // style details
        },
      }
    }
  ],
}