ব্যাচ অনুরোধ

এই নথিটি দেখায় যে কীভাবে আপনার ক্লায়েন্টকে সংযোগ করতে হবে তা কমাতে API কলগুলিকে একসাথে ব্যাচ করতে হয়। ব্যাচিং নেটওয়ার্ক রাউন্ড ট্রিপ কমিয়ে এবং থ্রুপুট বাড়িয়ে একটি অ্যাপ্লিকেশনের দক্ষতা উন্নত করতে পারে।

ওভারভিউ

প্রতিটি সংযোগ আপনার ক্লায়েন্ট একটি নির্দিষ্ট পরিমাণ ওভারহেড ফলাফল করে। Google শীট API আপনার ক্লায়েন্টকে একাধিক অনুরোধ বস্তু রাখতে দিতে ব্যাচিং সমর্থন করে, প্রতিটি একটি একক ব্যাচ অনুরোধে সঞ্চালনের জন্য একক ধরনের অনুরোধ নির্দিষ্ট করে। একটি ব্যাচ অনুরোধ সার্ভারে একটি একক কলে একাধিক সাব-রিকোয়েস্ট একত্রিত করে, একটি একক প্রতিক্রিয়া ফিরিয়ে এনে কর্মক্ষমতা বাড়াতে পারে।

আমরা ব্যবহারকারীদের সবসময় একসাথে একাধিক অনুরোধ ব্যাচ করতে উত্সাহিত করি। এখানে এমন কিছু উদাহরণ রয়েছে যেখানে আপনি ব্যাচিং ব্যবহার করতে পারেন:

  • আপনি সবেমাত্র API ব্যবহার শুরু করেছেন এবং আপলোড করার জন্য আপনার কাছে প্রচুর ডেটা আছে।
  • আপনাকে একাধিক অবজেক্টে মেটাডেটা বা বৈশিষ্ট্য আপডেট করতে হবে, যেমন ফর্ম্যাটিং।
  • আপনাকে অনেক বস্তু মুছে ফেলতে হবে।

সীমা, অনুমোদন, এবং নির্ভরতা বিবেচনা

ব্যাচ আপডেট করার সময় বিবেচনা করার জন্য এখানে অন্যান্য আইটেমগুলির একটি তালিকা রয়েছে:

  • প্রতিটি ব্যাচের অনুরোধ, সমস্ত সাবরিকোয়েস্ট সহ, আপনার ব্যবহারের সীমার দিকে একটি API অনুরোধ হিসাবে গণনা করা হয়।
  • একটি ব্যাচ অনুরোধ একবার প্রমাণীকৃত হয়. এই একক প্রমাণীকরণ অনুরোধের সমস্ত ব্যাচ আপডেট অবজেক্টের ক্ষেত্রে প্রযোজ্য।
  • সার্ভার সাবরিকোয়েস্টগুলিকে একই ক্রমে প্রক্রিয়া করে যেগুলি ব্যাচের অনুরোধে প্রদর্শিত হয়। পরবর্তী সাবরিকোয়েস্টগুলি পূর্ববর্তী সাবরিকোয়েস্টের সময় নেওয়া পদক্ষেপের উপর নির্ভর করতে পারে। উদাহরণস্বরূপ, একই ব্যাচের অনুরোধে, ব্যবহারকারীরা একটি বিদ্যমান নথিতে পাঠ্য সন্নিবেশ করতে পারে এবং তারপরে এটি স্টাইল করতে পারে।

ব্যাচের বিবরণ

একটি ব্যাচ অনুরোধে একাধিক সাব-রিকোয়েস্ট সহ একটি batchUpdate পদ্ধতি কল থাকে, উদাহরণস্বরূপ, একটি স্প্রেডশীট যোগ করুন এবং তারপর ফর্ম্যাট করুন৷

প্রতিটি অনুরোধ প্রয়োগ করার আগে যাচাই করা হয়। ব্যাচ আপডেটের সমস্ত সাবরিকোয়েস্ট পরমাণুভাবে প্রয়োগ করা হয়। অর্থাৎ, যদি কোনো অনুরোধ বৈধ না হয় তাহলে সম্পূর্ণ আপডেট ব্যর্থ হয় এবং (সম্ভাব্যভাবে নির্ভরশীল) পরিবর্তনগুলির কোনোটিই প্রয়োগ করা হয় না।

কিছু অনুরোধ প্রয়োগ করা অনুরোধ সম্পর্কে তথ্য সহ প্রতিক্রিয়া প্রদান করে। উদাহরণ স্বরূপ, অবজেক্ট যোগ করার জন্য সমস্ত ব্যাচ আপডেট রিকুয়েস্ট রিটার্ন দেয় যাতে আপনি নতুন যোগ করা অবজেক্টের মেটাডেটা অ্যাক্সেস করতে পারেন, যেমন আইডি বা শিরোনাম।

এই পদ্ধতির সাহায্যে, আপনি একাধিক সাবরিকোয়েস্ট সহ একটি API ব্যাচ আপডেট অনুরোধ ব্যবহার করে একটি সম্পূর্ণ Google নথি তৈরি করতে পারেন।

একটি ব্যাচ অনুরোধের বিন্যাস

একটি অনুরোধ হল একটি একক JSON অনুরোধ যাতে একাধিক, একটি প্রয়োজনীয় সম্পত্তি সহ নেস্টেড সাব-রিকোয়েস্ট থাকে: requests । অনুরোধগুলি পৃথক অনুরোধের অ্যারেতে তৈরি করা হয়। প্রতিটি অনুরোধ অনুরোধ বস্তুর প্রতিনিধিত্ব করতে এবং এর বৈশিষ্ট্যগুলি ধারণ করতে JSON ব্যবহার করে।

একটি ব্যাচ প্রতিক্রিয়া বিন্যাস

একটি ব্যাচ অনুরোধের প্রতিক্রিয়া বিন্যাস অনুরোধ বিন্যাসের অনুরূপ। সার্ভারের প্রতিক্রিয়া একক প্রতিক্রিয়া বস্তুর একটি সম্পূর্ণ উত্তর ধারণ করে।

প্রধান JSON অবজেক্টের সম্পত্তির নাম দেওয়া হয় replies । প্রতিক্রিয়াগুলি একটি অ্যারেতে ফেরত দেওয়া হয়, প্রতিটি অনুরোধের প্রতিটি প্রতিক্রিয়া সংশ্লিষ্ট অনুরোধের মতো একই সূচক ক্রম দখল করে। কিছু অনুরোধের প্রতিক্রিয়া নেই এবং সেই অ্যারে সূচকে প্রতিক্রিয়া খালি।

উদাহরণ

নিম্নলিখিত উদাহরণটি পত্রক API-এর সাথে ব্যাচিংয়ের ব্যবহার দেখায়।

অনুরোধ

এই উদাহরণ ব্যাচ অনুরোধটি দেখায় কিভাবে:

  • AddSheetRequest ব্যবহার করে 12345 এর একটি sheetId সহ একটি বিদ্যমান স্প্রেডশীটে একটি শীট যোগ করুন।
  • UpdateCellsRequest ব্যবহার করে সেল A1 দিয়ে শুরু করে নতুন শীটে ডেটা যোগ করুন।
  • নতুন শীটে একটি namedRange বা ফিল্টার ভিউ যোগ করুন।

অনুরোধে শীট আইডি যোগ করে, ব্যবহারকারীরা একই API কলে অন্যান্য সাবরিকোয়েস্টের জন্য শীট আইডি ব্যবহার করতে পারেন। এটি একটি লেখা-পড়া-লেখা চক্র এড়িয়ে কর্মক্ষমতা উন্নত করে।

ব্যাচ আপডেট অনুরোধের প্রকারের তালিকার জন্য, বিভিন্ন বিভাগে গোষ্ঠীবদ্ধ, ব্যাচ আপডেট অপারেশনের অধীনে টেবিলটি দেখুন।

{
   "requests":[
      {
         "addSheet":{
            "properties":{
               "sheetId":123456
            }
         }
      },
      {
         "updateCells":{
            "start":{
               "sheetId":123456
            },
            "rows":[
               {
                  "values":[
                     {
                        "userEnteredValue":{
                           "stringValue":"hello"
                        }
                     }
                  ]
               },
               {
                  "values":[
                     {
                        "userEnteredValue":{
                           "stringValue":"world"
                        }
                     }
                  ]
               }
            ],
            "fields":"userEnteredValue"
         }
      },
      {
         "addNamedRange":{
            "namedRange":{
               "name":"newRange",
               "range":{
                  "sheetId":123456,
                  "endRowIndex":2
               }
            }
         }
      }
   ]
}

প্রতিক্রিয়া

এই উদাহরণ ব্যাচ প্রতিক্রিয়া ব্যাচ অনুরোধের মধ্যে প্রতিটি subrequest প্রয়োগ করা হয়েছে কিভাবে তথ্য প্রদর্শন করে. নোট করুন UpdateCellsRequest কোনো প্রতিক্রিয়া নেই তাই [1]-এ অ্যারের সূচকের মান খালি কোঁকড়া ধনুর্বন্ধনী নিয়ে গঠিত।

"replies":[
   {
      "addSheet":{
         "properties":{
            "sheetId":123456,
            "title":"Sheet3",
            "index":2,
            "sheetType":"GRID",
            "gridProperties":{
               "rowCount":1000,
               "columnCount":26
            }
         }
      }
   },
   {
      
   },
   {
      "addNamedRange":{
         "namedRange":{
            "namedRangeId":"2104325079",
            "name":"newRange",
            "range":{
               "sheetId":123456,
               "startRowIndex":0,
               "endRowIndex":2,
               "startColumnIndex":0,
               "endColumnIndex":26
            }
         }
      }
   }
]