Введение
При вызове методов «Подробная информация о месте» (новый) , «Поиск поблизости» (новый) или «Текстовый поиск» (новый) необходимо указать, какие поля вы хотите получить в ответе. По умолчанию список возвращаемых полей отсутствует. Если этот список опущен, методы вернут ошибку.
Полный список поддерживаемых полей данных и соответствующих им артикулов можно найти в разделе «Размещение полей данных (новое)» . Информацию о полях, специфичных для каждого API, см. ниже:
- Подробная информация о месте (новое) Параметры FieldMask
- Поиск поблизости (новый) Параметры FieldMask
- Параметры FieldMask для поиска текста (новые).
Список полей задается путем создания маски полей ответа . Затем эта маска полей ответа передается любому из методов с помощью параметра $fields или fields , либо с помощью заголовка HTTP или gRPC X-Goog-FieldMask .
Использование маскирования полей — это хорошая практика проектирования, позволяющая избежать запроса ненужных данных, что помогает избежать лишнего времени обработки и дополнительных расходов на выставление счетов.
Определите маску поля ответа
Маска поля ответа представляет собой список путей, разделенных запятыми, где каждый путь указывает на уникальное поле в теле ответа. Путь начинается с сообщения ответа верхнего уровня и использует путь, разделенный точками, к указанному полю.
Создайте путь к полю следующим образом:
topLevelField[.secondLevelField][.thirdLevelField][...]
Вы можете запросить все поля, используя маску поля * .
Для получения дополнительной информации о том, как создавать маски полей, см. файл field_mask.proto .
Определите, какие маски полей следует использовать.
Вот как можно определить, какие маски полей вы хотите использовать:
- Запросите все поля, используя маску поля
*. - Изучите иерархию полей в ответе и определите, какие поля вам нужны.
- Создайте маску поля, используя иерархию полей.
Определите маску поля ответа для поиска поблизости (новая функция) и текстового поиска (новая функция).
Nearby Search (New) and Text Search (New) return an array of Place objects in the places field of the response. For these APIs, places is the top-level field of the response.
Например, чтобы увидеть полный объект ответа при текстовом поиске (новая функция):
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 добавит новые поля ответа, и эти новые поля потребуют дополнительного времени вычислений. Если вы выберете все поля или все поля верхнего уровня, вы можете столкнуться со снижением производительности, когда все новые поля будут автоматически включены в ваш ответ.
- Это приводит к уменьшению размера ответа , что, в свою очередь, увеличивает пропускную способность сети.
- Это гарантирует, что вы не запрашиваете ненужные данные , что помогает избежать лишнего времени обработки и дополнительных расходов.