É possível usar solicitações em lote com a API Merchant para enviar várias solicitações em uma única chamada de API.
Uma solicitação em lote é uma única solicitação HTTP padrão contendo várias chamadas de API.
usando o tipo de conteúdo multipart/mixed
. Na solicitação HTTP principal, cada
part contém uma solicitação HTTP aninhada.
É possível enviar a solicitação em lote ao batchPath
especificado para a API. A
O batchPath
para a API Merchant Beta é batch/{sub-api}/v1beta
. Você pode encontrar
o batchPath
para outras APIs na descoberta
documentos.
Aqui estão alguns exemplos de situações em que convém agrupar suas solicitações em lote:
- Você começou a usar a API e tem muitos dados para fazer upload.
- Um usuário fez alterações nos dados enquanto seu aplicativo estava off-line, e seu aplicativo precisa sincronizar dados locais com o servidor.
Se você tiver dúvidas sobre lotes HTTP ou se quiser solicitar a capacidade para enviar solicitações em lote com o nosso cliente bibliotecas, enviar feedback.
Criar uma solicitação em lote
Este é um exemplo de solicitação em lote da API Merchant. Essa solicitação combina uma solicitação GET para recuperar o inventário regional de um produto e uma solicitação de inserção para atualizar o inventário local do mesmo produto.
Você deve seguir exatamente o formato do exemplo:
- Usar
https://merchantapi.googleapis.com/batch/{sub-api}/v1beta
como base URL. Especifique um limite para separar cada solicitação aninhada, por exemplo:
-H 'Content-Type: multipart/mixed,boundary=batch_inventory' \
Separe cada solicitação aninhada com o limite, por exemplo
--batch_inventory
:Inclua
Content-Type: application/http
no início de cada anúncio aninhado solicitação.(Opcional) Use
Content-ID
para rotular cada solicitação aninhada com seu próprio ID. Exemplo:Content-ID: <get:online:en:US:123456>
.Incluir uma linha em branco entre o cabeçalho, o caminho e o corpo de cada palavra aninhada solicitação. Se a solicitação aninhada não tiver um corpo, deixe uma linha em branco antes do próximo limite.
Não inclua o URL de base em cada solicitação aninhada individual.
Encerrar a solicitação principal com um limite final, por exemplo
--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--
'
Se você precisar executar suas chamadas em uma determinada ordem, envie-as separadamente e aguarde a resposta da primeira solicitação antes de enviar a próxima.
Ler uma resposta em lote
Veja um exemplo de uma resposta HTTP em lote. A ordem das respostas pode
não correspondem à ordem das solicitações. Use o Content-ID
para identificar os elementos
solicitação de cada resposta aninhada pertence. Nas respostas, cada Content-ID
é
com o prefixo 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--
'