একসাথে একাধিক অনুরোধ পাঠানো

আপনি মার্চেন্ট API-এর সাথে ব্যাচ অনুরোধ ব্যবহার করে একটি API কলে একাধিক HTTP অনুরোধ পাঠাতে পারেন।

আপনি ক্লায়েন্ট লাইব্রেরি ব্যবহার করে ব্যাচিং করতে চাইলে, একসাথে একাধিক অনুরোধের জন্য কোড রিফ্যাক্টর করুন দেখুন।

ব্যাচ অনুরোধ হল একটি স্ট্যান্ডার্ড HTTP অনুরোধ যাতে একাধিক API কল থাকে এবং multipart/mixed কন্টেন্ট-টাইপ ব্যবহার করা হয়। মূল HTTP অনুরোধের মধ্যে, প্রতিটি অংশে একটি নেস্টেড HTTP অনুরোধ থাকে।

আপনি API-এর জন্য নির্দিষ্ট batchPath-এ ব্যাচ অনুরোধ পাঠাতে পারেন। Merchant API-এর জন্য batchPath হল batch/{sub-api}/v1। আপনি অন্যান্য API-এর জন্য batchPath তাদের ডিসকভারি ডকুমেন্টে খুঁজে পেতে পারেন।

আপনার অনুরোধ ব্যাচ করার কারণের উদাহরণের মধ্যে অন্তর্ভুক্ত হল:

  • আপনি এইমাত্র API ব্যবহার করা শুরু করেছেন এবং আপলোড করার জন্য আপনার কাছে অনেক ডেটা আছে।
  • আপনার অ্যাপ্লিকেশন অফলাইন থাকাকালীন কোনও ব্যবহারকারী ডেটাতে পরিবর্তন করেছেন এবং আপনার অ্যাপ্লিকেশনকে সার্ভারের সাথে লোকাল ডেটা সিঙ্ক্রোনাইজ করতে হবে।

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

ব্যাচ অনুরোধ লিখুন

এখানে Merchant API ব্যাচ অনুরোধের একটি স্যাম্পেল দেওয়া হল। এই অনুরোধে, কোনও প্রোডাক্টের আঞ্চলিক ইনভেনটরি সংক্রান্ত তথ্য পাওয়ার জন্য একটি get অনুরোধ এবং একই প্রোডাক্টের আঞ্চলিক ইনভেনটরি সংক্রান্ত তথ্য আপডেট করার জন্য একটি insert অনুরোধ একসাথে করা হয়। আপনাকে উদাহরণের ফর্ম্যাট হুবহু অনুসরণ করতে হবে:

  1. বেস URL হিসেবে https://merchantapi.googleapis.com/batch/{sub-api}/v1 ব্যবহার করুন।
  2. প্রতিটি নেস্টেড অনুরোধ আলাদা করার জন্য একটি বাউন্ডারি নির্দিষ্ট করুন, যেমন: -H 'Content-Type: multipart/mixed,boundary=batch_inventory' \
  3. প্রতিটি নেস্টেড অনুরোধ বাউন্ডারি দিয়ে আলাদা করুন, যেমন --batch_inventory।
  4. প্রতিটি নেস্টেড অনুরোধের শুরুতে Content-Type: application/http যোগ করুন।
  5. আপনার নিজস্ব আইডি দিয়ে প্রতিটি নেস্টেড অনুরোধ লেবেল করতে Content-ID ব্যবহার করুন। যেমন: Content-ID: <get~en~US~123456>.
  6. প্রতিটি নেস্টেড অনুরোধের হেডার, পাথ ও বডির মধ্যে একটি ফাঁকা লাইন রাখুন। নেস্টেড অনুরোধের কোনও বডি না থাকলে, পরবর্তী বাউন্ডারির আগে একটি ফাঁকা লাইন ছেড়ে দিন।
  7. প্রতিটি আলাদা নেস্টেড অনুরোধে বেস URL অন্তর্ভুক্ত করবেন না।
  8. প্রধান অনুরোধটি একটি চূড়ান্ত সীমানা দিয়ে শেষ করুন, যেমন --batch_inventory–।
curl https://merchantapi.googleapis.com/batch/inventories/v1 \
-H 'Authorization: Bearer {ACCESS_TOKEN}' \
-H 'Content-Type: multipart/mixed,boundary=batch_inventory' \
--data '
--batch_inventory
Content-Type: application/http
Content-ID: <get~en~US~123456>

GET /inventories/v1/accounts/123/products/en~US~123456/regionalInventories

--batch_inventory
Content-Type: application/http
Content-ID: <post~en~US~123456>

POST /inventories/v1/accounts/123/products/en~US~123456/regionalInventories:insert
{
  "region": "123456",
  "price": {
    "amountMicros": "100000000",
    "currencyCode": "USD"
  }
}

--batch_inventory--'

অর্ডার করার ব্যাপারে নোট

  • আপনি যেভাবে অনুরোধগুলি নির্দিষ্ট করেছেন সেই ক্রমে সেগুলি কার্যকর নাও হতে পারে।
  • আলাদা আলাদা অনুরোধ শনাক্ত করতে Content-ID ব্যবহার করুন।
  • আপনি যদি কোনও নির্দিষ্ট ক্রমে আপনার কলগুলি কার্যকর করতে চান, তাহলে সেগুলি আলাদাভাবে পাঠান এবং পরবর্তী অনুরোধ পাঠানোর আগে প্রথম অনুরোধের উত্তরের জন্য অপেক্ষা করুন।

ব্যাচ রেসপন্স পড়ুন

HTTP ব্যাচ রেসপন্সের একটি উদাহরণ এখানে দেওয়া হল। উত্তরের ক্রম অনুরোধের ক্রমের সাথে ম্যাচ নাও করতে পারে। প্রতিটি নেস্টেড উত্তর যে নেস্টেড অনুরোধের অন্তর্গত তা শনাক্ত করতে Content-ID ব্যবহার করুন। উত্তরে, API প্রতিটি Content-ID-এর আগে response- যোগ করে।

--batch_inventory
Content-Type: application/http
Content-ID: <response-get~en~US~123456>
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Vary: Origin
Vary: X-Origin
Vary: Referer
{}
--batch_inventory
Content-Type: application/http
Content-ID: <response-post~en~US~123456>
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Vary: Origin
Vary: X-Origin
Vary: Referer
{
  "name": "accounts/123/products/en~US~123456/regionalInventories/123456",
  "region": "123456",
  "price": {
    "amountMicros": "100000000",
    "currencyCode": "USD"
  }
}
--batch_inventory--

সীমা

ব্যাচ অনুরোধের ক্ষেত্রে নিম্নলিখিত সীমা প্রযোজ্য:

  • প্রতি ব্যাচ অনুরোধে ২,০০০টি নেস্টেড অনুরোধ।

কোনও ব্যাচ অনুরোধ এইসব সীমার কোনও একটি অতিক্রম করলে, API একটি 400 Bad Request ত্রুটি দেখায় এবং সম্পূর্ণ অনুরোধটি বাতিল করে দেয়।