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

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

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

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

আপনি API-এর জন্য নির্দিষ্ট batchPath ব্যাচের অনুরোধ পাঠাতে পারেন। মার্চেন্ট এপিআই বিটার জন্য batchPath হল batch/{sub-api}/v1beta । আপনি তাদের আবিষ্কার নথিতে অন্যান্য API-এর জন্য batchPath খুঁজে পেতে পারেন। আপনার অনুরোধগুলি ব্যাচ করার কারণগুলির উদাহরণগুলির মধ্যে রয়েছে:

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

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

এখানে একটি নমুনা মার্চেন্ট API ব্যাচ অনুরোধ। এই অনুরোধটি একটি পণ্যের জন্য আঞ্চলিক তালিকা পুনরুদ্ধার করার জন্য একটি অনুরোধ এবং একই পণ্যের জন্য আঞ্চলিক ইনভেন্টরি আপডেট করার জন্য একটি সন্নিবেশের অনুরোধকে একত্রিত করে। আপনার উদাহরণের বিন্যাসটি সঠিকভাবে অনুসরণ করা উচিত:

  1. বেস ইউআরএল হিসেবে https://merchantapi.googleapis.com/batch/{sub-api}/v1beta ব্যবহার করুন।
  2. প্রতিটি নেস্টেড অনুরোধকে আলাদা করার জন্য একটি সীমানা নির্দিষ্ট করুন, উদাহরণস্বরূপ: -H 'Content-Type: multipart/mixed,boundary=batch_inventory' \
  3. প্রতিটি নেস্টেড অনুরোধকে সীমানা দিয়ে আলাদা করুন, উদাহরণস্বরূপ --batch_inventory
  4. প্রতিটি নেস্টেড অনুরোধের শুরুতে Content-Type: application/http অন্তর্ভুক্ত করুন।
  5. আপনার নিজের আইডি দিয়ে প্রতিটি নেস্টেড অনুরোধকে লেবেল করতে Content-ID ব্যবহার করুন। যেমন: Content-ID: <get:online:en:US:123456>
  6. প্রতিটি নেস্টেড অনুরোধের শিরোনাম, পথ এবং শরীরের মধ্যে একটি ফাঁকা লাইন অন্তর্ভুক্ত করুন। নেস্টেড রিকোয়েস্টের কোনও বডি না থাকলে, পরবর্তী সীমানার আগে একটি ফাঁকা লাইন ছেড়ে দিন।
  7. প্রতিটি পৃথক নেস্টেড অনুরোধে বেস URL অন্তর্ভুক্ত করবেন না।
  8. একটি চূড়ান্ত সীমানা দিয়ে প্রধান অনুরোধটি শেষ করুন, উদাহরণস্বরূপ --batch_inventory–
curl https://merchantapi.googleapis.com/batch/inventories/v1beta \
-H 'Authorization: Bearer <TOKEN>' \
-H 'Content-Type: multipart/mixed,boundary=batch_inventory' \
--data '
--batch_inventory
Content-Type: application/http
Content-ID: <get:online:en:US:123456>
GET /inventories/v1beta/accounts/123/products/online:en:US:123456/regionalInventories
--batch_inventory
Content-Type: application/http
Content-ID: <post:online:en:US:123456>
POST /inventories/v1beta/accounts/123/products/online: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:online: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:online: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/online:en:US:123456/regionalInventories/123456",
  "region": "123456",
  "price": {
    "amountMicros": "100000000",
    "currencyCode": "USD"
  }
}
--batch_inventory--
'