한 번에 여러 요청 보내기

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

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

API에 대해 지정된 batchPath로 일괄 요청을 보낼 수 있습니다. 판매자 API 베타의 batchPathbatch/{sub-api}/v1beta입니다 . 검색 문서에서 다른 API의 batchPath를 찾을 수 있습니다.

다음은 요청을 일괄 처리할 수 있는 몇 가지 예입니다.

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

HTTP 일괄 처리에 대해 궁금한 점이 있거나 클라이언트 라이브러리를 사용하여 일괄 요청을 전송하는 기능을 요청하려는 경우 의견을 제출해 주세요.

일괄 요청 작성

다음은 판매자 API 일괄 요청의 예입니다. 이 요청은 제품의 지역 인벤토리를 가져오기 위한 get 요청과 동일한 제품의 오프라인 판매점 인벤토리를 업데이트하기 위한 삽입 요청을 결합합니다.

다음 예의 형식을 정확하게 따라야 합니다.

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

지정된 순서로 호출을 실행해야 하는 경우 호출을 따로 전송하고 다음 요청을 전송하기 전에 첫 번째 요청에 대한 응답을 기다립니다.

일괄 응답 읽기

다음은 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--
'