คุณใช้คำขอแบบกลุ่มกับ Merchant API เพื่อส่งคำขอหลายรายการในการเรียก API เดียวได้
คำขอแบบกลุ่มคือคำขอ HTTP มาตรฐานรายการเดียวที่มีการเรียก API หลายรายการโดยใช้ประเภทเนื้อหา multipart/mixed
แต่ละส่วนภายในคำขอ HTTP หลัก
จะมีคำขอ HTTP ที่ซ้อนกันอยู่
คุณส่งคำขอแบบกลุ่มไปยัง batchPath
ที่ระบุสำหรับ API ได้ batchPath
สำหรับ Merchant API เวอร์ชันเบต้าคือ batch/{sub-api}/v1beta
คุณดู batchPath
สำหรับ API อื่นๆ ได้ในเอกสารการค้นพบ
ตัวอย่างช่วงเวลาที่คุณอาจต้องการจัดกลุ่มคําขอมีดังนี้
- คุณเพิ่งเริ่มต้นใช้ API และมีข้อมูลที่จะอัปโหลดมากมาย
- ผู้ใช้ทำการเปลี่ยนแปลงข้อมูลขณะที่แอปพลิเคชันออฟไลน์ และแอปพลิเคชันของคุณต้องซิงค์ข้อมูลในเครื่องกับเซิร์ฟเวอร์
หากคุณมีข้อสงสัยเกี่ยวกับการจัดกลุ่ม HTTP หรือหากต้องการส่งคำขอแบบกลุ่มแก่ไลบรารีของไคลเอ็นต์ของเรา โปรดส่งความคิดเห็น
เขียนคำขอแบบกลุ่ม
นี่คือตัวอย่างคำขอกลุ่ม Merchant API คำขอนี้จะรวมคำขอรับเพื่อเรียกดูสินค้าคงคลังระดับภูมิภาคของผลิตภัณฑ์ และคำขอแทรกเพื่ออัปเดตสินค้าคงคลังในร้านสำหรับผลิตภัณฑ์เดียวกัน
คุณควรทำตามรูปแบบของตัวอย่างดังต่อไปนี้
- ใช้
https://merchantapi.googleapis.com/batch/{sub-api}/v1beta
เป็น URL ฐาน ระบุขอบเขตเพื่อแยกคำขอที่ซ้อนกันแต่ละรายการ เช่น
-H 'Content-Type: multipart/mixed,boundary=batch_inventory' \
แยกคำขอที่ฝังแต่ละรายการด้วยขอบเขต เช่น
--batch_inventory
ใส่
Content-Type: application/http
ที่ตอนต้นของคำขอแบบซ้อนแต่ละรายการ(ไม่บังคับ) ใช้
Content-ID
เพื่อติดป้ายกำกับคำขอที่ซ้อนกันแต่ละรายการด้วยรหัสของคุณเอง เช่นContent-ID: <get:online:en:US:123456>
.ใส่บรรทัดว่างระหว่างส่วนหัว เส้นทาง และเนื้อหาของแต่ละคำขอแบบซ้อนกัน หากคำขอที่ฝังไม่มีเนื้อความ ให้เว้นบรรทัดว่างก่อนขอบเขตถัดไป
อย่ารวม URL หลักไว้ในคำขอที่ซ้อนอยู่แต่ละรายการ
สิ้นสุดคําขอหลักด้วยขอบเขตสุดท้าย เช่น
--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--
'