Введение
При вызове методов «Подробная информация о месте» (новый) , «Поиск поблизости» (новый) или «Текстовый поиск» (новый) необходимо указать, какие поля вы хотите получить в ответе. По умолчанию список возвращаемых полей отсутствует. Если этот список опущен, методы вернут ошибку.
Полный список поддерживаемых полей данных и соответствующих им артикулов можно найти в разделе «Размещение полей данных (новое)» . Информацию о полях, специфичных для каждого API, см. ниже:
- Подробная информация о месте (новое) Параметры FieldMask
- Поиск поблизости (новый) Параметры FieldMask
- Параметры FieldMask для поиска текста (новые).
Список полей задается путем создания маски полей ответа . Затем эта маска полей ответа передается любому из методов с помощью параметра $fields или fields , либо с помощью заголовка HTTP или gRPC X-Goog-FieldMask .
Использование маскирования полей — это хорошая практика проектирования, позволяющая избежать запроса ненужных данных, что помогает избежать лишнего времени обработки и дополнительных расходов на выставление счетов.
Определите маску поля ответа
Маска поля ответа представляет собой список путей, разделенных запятыми, где каждый путь указывает на уникальное поле в теле ответа. Путь начинается с сообщения ответа верхнего уровня и использует путь, разделенный точками, к указанному полю.
Создайте путь к полю следующим образом:
topLevelField[.secondLevelField][.thirdLevelField][...]
Вы можете запросить все поля, используя маску поля * .
Для получения дополнительной информации о том, как создавать маски полей, см. файл field_mask.proto .
Определите, какие маски полей следует использовать.
Вот как можно определить, какие маски полей вы хотите использовать:
- Запросите все поля, используя маску поля
*. - Изучите иерархию полей в ответе и определите, какие поля вам нужны.
- Создайте маску поля, используя иерархию полей.
Определите маску поля ответа для поиска поблизости (новая функция) и текстового поиска (новая функция).
Поиск поблизости (новый) и текстовый поиск (новый) возвращают массив объектов Place в поле places ответа. Для этих API places является полем верхнего уровня ответа.
Например, чтобы увидеть полный объект ответа при текстовом поиске (новая функция):
curl -X POST -d '{
"textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: *' \
'https://places.googleapis.com/v1/places:searchText'Полный ответ на запрос текстового поиска (новый) имеет следующий вид:
{ "places": [ { "name": "places/ChIJs5ydyTiuEmsR0fRSlU0C7k0", "id": "ChIJs5ydyTiuEmsR0fRSlU0C7k0", "types": [ "vegetarian_restaurant", "vegan_restaurant", "meal_takeaway", "restaurant", "food", "point_of_interest", "establishment" ], "nationalPhoneNumber": "0433 479 794", "internationalPhoneNumber": "+61 433 479 794", "formattedAddress": "29 King St, Sydney NSW 2000, Australia", "displayName": { "text": "Spiced @ Barangaroo", "languageCode": "en" }, ... }, ... ] }
Таким образом, для этих API-интерфейсов вы указываете маску поля в следующем формате:
places[.secondLevelField][.thirdLevelField][...]
Если вы хотите получить только поля formattedAddress и displayName , установите маску поля следующим образом:
places.formattedAddress,places.displayName
Указание параметра displayName включает в себя как text , так и language поле displayName . Если вам нужно только text поле, установите маску поля следующим образом:
places.formattedAddress,places.displayName.text
Определите маску поля ответа для сведений о месте (новая функция).
Функция «Подробная информация о месте» (новая) возвращает один объект Place в следующем формате:
{ "name": "places/ChIJkR8FdQNB0VQRm64T_lv1g1g", "id": "ChIJkR8FdQNB0VQRm64T_lv1g1g", "types": [ "locality", "political" ], "formattedAddress": "Trinidad, CA 95570, USA", "displayName": { "text": "Trinidad", "languageCode": "en" } ... }
Таким образом, для этого API вы указываете маску поля, перечислив поля объекта Place, которые хотите вернуть:
curl -X GET -H 'Content-Type: application/json' \ -H "X-Goog-Api-Key: API_KEY" \ -H "X-Goog-FieldMask: formattedAddress,displayName" \ https://places.googleapis.com/v1/places/ChIJj61dQgK6j4AR4GeTYWZsKWw
вызов gRPC
Для gRPC установите переменную, содержащую маску поля ответа. Затем вы можете передать эту переменную в запрос.
const ( fieldMask = "places.formattedAddress,places.displayName" )
Вопросы, касающиеся маршрута следования полю.
В ответ следует включать только необходимые поля. Возвращаются только нужные поля:
- Сокращает время обработки , поэтому результаты возвращаются с меньшей задержкой.
- Обеспечивает стабильную задержку, если в будущем API добавит новые поля ответа, и эти новые поля потребуют дополнительного времени вычислений. Если вы выберете все поля или все поля верхнего уровня, вы можете столкнуться со снижением производительности, когда все новые поля будут автоматически включены в ваш ответ.
- Это приводит к уменьшению размера ответа , что, в свою очередь, увеличивает пропускную способность сети.
- Это гарантирует, что вы не запрашиваете ненужные данные , что помогает избежать лишнего времени обработки и дополнительных расходов.