إرسال طلبات متعددة في آنٍ واحد

يمكنك استخدام الطلبات المجمّعة. باستخدام Merchant API لإرسال طلبات متعدّدة في طلب بيانات واحد من واجهة برمجة التطبيقات.

الطلب المجمّع هو طلب HTTP عادي واحد يحتوي على طلبات بيانات متعددة من واجهة برمجة التطبيقات، باستخدام نوع المحتوى multipart/mixed. وفي طلب HTTP الرئيسي، لا يحتوي كل على طلب HTTP متداخل.

يمكنك إرسال الطلب المجمّع إلى batchPath المحدّد لواجهة برمجة التطبيقات. تشير رسالة الأشكال البيانية batchPath للإصدار التجريبي من Merchant API هو batch/{sub-api}/v1beta . يمكنك الاطّلاع على batchPath لواجهات برمجة التطبيقات الأخرى في اكتشافها المستندات.

في ما يلي بعض الأمثلة على الأوقات التي قد تريد فيها تجميع طلباتك:

  • لقد بدأت للتو في استخدام واجهة برمجة التطبيقات ولديك الكثير من البيانات لتحميلها.
  • أجرى أحد المستخدمين تغييرات على البيانات عندما كان تطبيقك غير متصل بالإنترنت، و يحتاج التطبيق إلى مزامنة البيانات المحلية مع الخادم.

إذا كانت لديك أسئلة حول تجميع HTTP، أو إذا كنت تريد طلب إمكانية إرسال طلبات مجمّعة مع عميلنا المكتبات، إرسال الملاحظات والآراء.

كتابة طلب مُجمَّع

في ما يلي نموذج لطلب مجمّع من Merchant API. يجمع هذا الطلب بين طلب الحصول على لاسترداد المخزون الإقليمي لمنتج ما وطلب إدراج تعديل المنتجات المتوفرة داخل المتجر للمنتج نفسه

يجب عليك اتباع تنسيق المثال بالضبط:

  1. استخدام "https://merchantapi.googleapis.com/batch/{sub-api}/v1beta" كقاعدة عنوان URL.
  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--
'

إذا كنت بحاجة إلى تنفيذ المكالمات بترتيب معين، فأرسلها بشكل منفصل يُرجى انتظار الرد على الطلب الأول قبل إرسال الطلب التالي.

قراءة ردّ مجمّع

في ما يلي مثال على استجابة مُجمَّعة لبروتوكول HTTP. قد يكون ترتيب الردود لا تتطابق مع ترتيب الطلبات. يمكنك استخدام Content-ID لتحديد العناصر المتداخلة الذي يطلبه كل رد متداخل. في الردود، كل Content-ID هو تبدأ بـ response-.

--batch_YCE-jYH0pmDrBIHeHhltcpXIMpk0VTzQ
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_YCE-jYH0pmDrBIHeHhltcpXIMpk0VTzQ
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_YCE-jYH0pmDrBIHeHhltcpXIMpk0VTzQ--
'