ส่งคำขอหลายรายการพร้อมกัน

คุณใช้คำขอแบบกลุ่มกับ Merchant API เพื่อส่งคำขอหลายรายการในการเรียก API เดียวได้

คำขอแบบกลุ่มคือคำขอ HTTP มาตรฐานรายการเดียวที่มีการเรียก API หลายรายการโดยใช้ประเภทเนื้อหา multipart/mixed แต่ละส่วนภายในคำขอ HTTP หลัก จะมีคำขอ HTTP ที่ซ้อนกันอยู่

คุณส่งคำขอแบบกลุ่มไปยัง batchPath ที่ระบุสำหรับ API ได้ batchPath สำหรับ Merchant API เวอร์ชันเบต้าคือ batch/{sub-api}/v1beta คุณดู batchPath สำหรับ API อื่นๆ ได้ในเอกสารการค้นพบ

ตัวอย่างช่วงเวลาที่คุณอาจต้องการจัดกลุ่มคําขอมีดังนี้

  • คุณเพิ่งเริ่มต้นใช้ API และมีข้อมูลที่จะอัปโหลดมากมาย
  • ผู้ใช้ทำการเปลี่ยนแปลงข้อมูลขณะที่แอปพลิเคชันออฟไลน์ และแอปพลิเคชันของคุณต้องซิงค์ข้อมูลในเครื่องกับเซิร์ฟเวอร์

หากคุณมีข้อสงสัยเกี่ยวกับการจัดกลุ่ม 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--
'