Перенос управления регионами

В этом руководстве рассказывается, как перейти с метода RegionsService в Content API for Shopping на метод RegionsService в Accounts sub-API.

Сервис Regions позволяет определять собственные географические регионы для таких целей, как региональное ценообразование и переопределение доставки. Регионы можно использовать с такими сервисами, как RegionalInventory и ShippingSettings.

Основные различия

  • Структура API. Сервис Regions теперь является частью дочернего API Accounts в Merchant API (например, merchantapi.googleapis.com/accounts/v1/...).
  • Названия ресурсов. Merchant API использует названия ресурсов (accounts/{account}/regions/{region}) вместо отдельных параметров merchant_id и region_id в пути URL для операций Get, Update и Delete.
  • Соответствие AIP. Методы Merchant API соответствуют стандартным шаблонам API Improvement Proposal (например, использование parent для List/Create, name для Get/Delete и стандартное использование update_mask).
  • Типы оболочек. Поля, в которых ранее использовались google.protobuf.StringValue или google.protobuf.BoolValue в Content API, теперь используют стандартные поля optional в Merchant API.
  • Новые функции:
    • В Merchant API появился тип RadiusArea в ресурсе Region, который позволяет определять регионы на основе радиуса вокруг точки (изначально с видимостью TRUST_TESTER).
    • Доступны пакетные методы BatchCreateRegions, BatchUpdateRegions и BatchDeleteRegions.
  • Обработка ошибок. Коды ошибок и сообщения предоставляют более конкретную обратную связь.

Запросы

Вот как меняются шаблоны запросов:

Item Content API for Shopping Merchant API Описание
Конечная точка https://shoppingcontent.googleapis.com https://merchantapi.googleapis.com Изменился базовый домен.
Get Path /content/v2.1/{merchant_id}/regions/{region_id} /accounts/v1/{name=accounts/*/regions/*} Merchant API использует дочерний API accounts и ресурс name.
Путь к списку /content/v2.1/{merchant_id}/regions /accounts/v1/{parent=accounts/*}/regions В Merchant API для указания аккаунта используется parent.
Создать путь /content/v2.1/{merchant_id}/regions /accounts/v1/{parent=accounts/*}/regions Merchant API использует parent. region_id – поле в теле запроса.
Путь обновления /content/v2.1/{merchant_id}/regions/{region_id} /accounts/v1/{name=accounts/*/regions/*} Название ресурса в Merchant API является частью объекта region в теле запроса.
Удалить путь /content/v2.1/{merchant_id}/regions/{region_id} /accounts/v1/{name=accounts/*/regions/*} Используется ресурс name.

Идентификаторы

Измените использование идентификаторов следующим образом:

Item Content API for Shopping Merchant API Описание
Аккаунт merchant_id (целое число) account (целое число, часть строки name или parent) Найдите идентификатор аккаунта, встроенный в строку названия ресурса, например accounts/{account}.
Регион region_id (строка) {region} (строка, часть строки name) Найдите идентификатор региона, встроенный в строку названия ресурса, например accounts/{account}/regions/{region}.
Название ресурса Не используется строго для запросов. name: accounts/{account}/regions/{region}. Стандартный идентификатор для запросов на получение, обновление и удаление.
Имя родителя Не используется строго для запросов. parent: accounts/{account}. Стандартный идентификатор для запросов List/Create.

Ресурсы

В структуре ресурса Region произошли незначительные изменения:

Item Content API for Shopping Merchant API Описание
Идентификатор ресурса region_id (строка), merchant_id (int64) name (строка): accounts/{account}/regions/{region} Merchant API использует одно поле name в качестве идентификатора ресурса.
display_name google.protobuf.StringValue optional string Тип упаковочной машины удален.
radius_area — RadiusArea Этот новый тип определяет регионы по радиусу. region_code, lat_lng, radius, radius_units. По умолчанию доступ ограничен.
regional_inventory_eligible google.protobuf.BoolValue (только вывод) optional bool (только вывод) Тип контейнера удален.
shipping_eligible google.protobuf.BoolValue (только вывод) optional bool (только вывод) Тип упаковочной машины удален.

Методы

Измените использование методов следующим образом:

Item Content API for Shopping Merchant API Описание
Get Region GetRegion GetRegion В запросе используется name.
Создать регион CreateRegion CreateRegion Запрос берет parent из URL, а тело запроса включает объект region и region_id.
Изменить регион UpdateRegion UpdateRegion В запросе используются параметры region (который должен включать region.name) и update_mask.
Удалить регион DeleteRegion DeleteRegion В запросе используется name.
List Regions ListRegions ListRegions В запросе используется parent. Поведение page_size и page_token согласовано.
Массовое создание − BatchCreateRegions Это новый метод.
Пакетное обновление − BatchUpdateRegions Это новый метод.
Массовое удаление − BatchDeleteRegions Это новый метод.

Переименованные поля

Item Content API for Shopping Merchant API Описание
Идентификатор аккаунта merchant_id account (входит в name или parent) Интегрировано в строки ресурса name. Это влияет на Region (ответ) и сообщения protobuf, используемые для выполнения запросов API, например CreateRegionRequest, GetRegionRequest, UpdateRegionRequest, DeleteRegionRequest и ListRegionsRequest.
Идентификатор региона region_id region (часть name), region_id В большинстве стран интегрирован в name, в CreateRegionRequest – отдельное поле region_id. Это касается Region (ответ) и сообщений protobuf, используемых для отправки запросов к API, таких как CreateRegionRequest, GetRegionRequest, UpdateRegionRequest, DeleteRegionRequest и ListRegionsRequest.
Название региона (выходные данные) region_id name Теперь основным идентификатором в ответе является полный ресурс name. Это повлияет на Region.
Отображаемое название display_name display_name Тип изменился с StringValue на optional string. Это повлияет на Region.
Пометки о соответствии требованиям ...eligible ...eligible Тип изменился с BoolValue на optional bool. Это повлияет на Region.
Обновить маску update_mask update_mask Region полевых дорог Это повлияет на UpdateRegionRequest.

Подробнее…