한 번에 여러 요청 보내기

Merchant API와 함께 일괄 요청을 사용하여 단일 API 호출로 여러 HTTP 요청을 전송할 수 있습니다.

클라이언트 라이브러리로 일괄 처리를 실행하려면 동시 요청을 위한 코드 리팩터링을 참고하세요.

일괄 요청은 여러 개의 API 호출이 포함된 단일 표준 HTTP 요청이며, multipart/mixed 콘텐츠 유형을 사용합니다. 기본 HTTP 요청 내의 각 부분에 중첩된 HTTP 요청이 포함됩니다.

API의 지정된 batchPath에 일괄 요청을 보낼 수 있습니다. Merchant API 베타의 batchPathbatch/{sub-api}/v1beta입니다. 다른 API의 batchPath탐색 문서에서 확인할 수 있습니다. 요청을 일괄 처리하는 이유의 예는 다음과 같습니다.

  • API를 이제 막 사용하기 시작했고 업로드할 데이터가 많습니다.
  • 애플리케이션이 오프라인 상태에서 사용자가 데이터를 변경했으며 애플리케이션에서 로컬 데이터를 서버와 동기화해야 합니다.

일괄 요청 작성

다음은 Merchant API 일괄 요청의 샘플입니다. 이 요청은 제품의 지역 인벤토리를 검색하는 get 요청과 동일한 제품의 지역 인벤토리를 업데이트하는 insert 요청을 결합합니다. 예시의 형식을 정확하게 따라야 합니다.

  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를 사용하여 각 중첩 요청에 자체 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-IDresponse- 접두사를 추가합니다.

--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--
'