Код рефакторинга для параллельных запросов

В API контента для покупок пакетный запрос может иметь несколько записей, и каждая запись может быть любым методом (вставка, обновление, удаление или пользовательский), определенным в ресурсе.

Merchant API не предлагает специальные пакетные методы. Вместо этого вы можете организовать параллельное выполнение отдельных запросов.

С клиентской библиотекой

Если вы используете клиентскую библиотеку, рассмотрите этот код API торгового контента.

ProductsCustomBatchResponse batchResponse =
        content.products().custombatch(batchRequest).execute();

Напишите эквивалент Merchant API следующим образом.

List<ApiFuture<ProductInput>> futures;

for (InsertProductInputRequest request : requests) {
    futures.add(productInputsServiceClient.insertProductInputCallable().futureCall(request));
}

List<ProductInput> responses;

for (ApiFuture<ProductInput> future : futures) {
    responses.add(future.get());
}

Без клиентской библиотеки

Если вы не используете клиентскую библиотеку, выполните пакетную обработку, как описано в разделе Отправка нескольких запросов одновременно .

Например, замените запрос Content API for Shopping следующим образом:

POST https://shoppingcontent.googleapis.com/content/v2.1/products/batch

{
  "entries": [
    {
      "method": "insert",
      "product": {  }
    }  ]
}

с этим Напишите пример пакетного запроса .