میتوانید از درخواستهای دستهای با 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--
'