ব্যাচ অনুরোধ

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

সংক্ষিপ্ত বিবরণ

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

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

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

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

ব্যাচ আপডেটিং ব্যবহার করার সময় বিবেচনা করার জন্য অন্যান্য বিষয়গুলির একটি তালিকা এখানে দেওয়া হল:

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

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

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

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

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

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

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

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

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

ব্যাচ রিকোয়েস্টের রেসপন্স ফরম্যাট রিকোয়েস্ট ফরম্যাটের মতোই। সার্ভারের রেসপন্সে সিঙ্গেল রেসপন্স অবজেক্টের সম্পূর্ণ রিসপন্স থাকে।

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

উদাহরণ

নিম্নলিখিত উদাহরণটি Sheets 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
               }
            }
         }
      }
   ]
}

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

এই উদাহরণ ব্যাচ রেসপন্স ব্যাচ রিকোয়েস্টের মধ্যে প্রতিটি সাবরিকোয়েস্ট কীভাবে প্রয়োগ করা হয়েছিল তার তথ্য প্রদর্শন করে। মনে রাখবেন 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
            }
         }
      }
   }
]