Cuando llames a los métodos Place Details (versión nueva), Nearby Search (versión nueva) o Text Search (versión nueva), debes especificar qué campos deseas que se muestren en la respuesta. No hay una lista predeterminada de campos que se muestran. Si omites esta lista, los métodos mostrarán un error.
Puedes encontrar una lista completa de los campos de datos compatibles y sus SKU correspondientes en Campos de datos de Place (nuevos). Para obtener información sobre los campos específicos de cada API, consulta lo siguiente:
- Parámetros FieldMask de Place Details (nuevo)
- Parámetros de FieldMask de la Búsqueda cercana (nueva)
- Parámetros de FieldMask de Text Search (nuevo)
Para especificar la lista de campos, crea una máscara de campo de respuesta. Luego, pasa la máscara de campo de respuesta a cualquiera de los métodos con el parámetro $fields
o fields
, o con el encabezado HTTP o gRPC X-Goog-FieldMask
.
El enmascaramiento de campos es una buena práctica de diseño para garantizar que no solicites datos innecesarios, lo que ayuda a evitar cargos de procesamiento y facturación innecesarios.
Define una máscara de campo de respuesta
La máscara de campo de respuesta es una lista de rutas separadas por comas, en la que cada ruta especifica un campo único en el cuerpo de la respuesta. La ruta comienza en el mensaje de respuesta de nivel superior y usa una ruta de acceso separada por puntos al campo especificado.
Crea una ruta de acceso de campo de la siguiente manera:
topLevelField[.secondLevelField][.thirdLevelField][...]
Puedes solicitar todos los campos con una máscara de campo de *
.
Para obtener más información sobre cómo crear máscaras de campo, consulta field_mask.proto.
Determina qué máscaras de campo usar
A continuación, te indicamos cómo puedes determinar qué máscaras de campo deseas usar:
- Solicita todos los campos con una máscara de campo de
*
. - Observa la jerarquía de los campos en la respuesta y determina qué campos deseas.
- Compila tu máscara de campo con la jerarquía de campos.
Define una máscara de campo de respuesta para la Búsqueda cercana (nueva) y la Búsqueda de texto (nueva)
La Búsqueda cercana (nueva) y la Búsqueda de texto (nueva) muestran un array de objetos Place en el campo places
de la respuesta. Para estas APIs, places
es el campo de nivel superior de la respuesta.
Por ejemplo, para ver el objeto de respuesta completo de una búsqueda de texto (nueva), haz lo siguiente:
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'
El objeto de respuesta completo de una llamada a Text Search (nueva) tiene el siguiente formato:
{ "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" }, ... }, ... ] }
Por lo tanto, especificas una máscara de campo para estas APIs de la siguiente forma:
places[.secondLevelField][.thirdLevelField][...]
Si deseas mostrar solo los campos formattedAddress
y displayName
, establece la máscara de campos en lo siguiente:
places.formattedAddress,places.displayName
Especificar displayName
incluye los campos text
y language
de displayName
. Si solo quieres el campo text
, establece la máscara de campo de la siguiente manera:
places.formattedAddress,places.displayName.text
Define una máscara de campo de respuesta para Place Details (nuevo)
Place Details muestra un solo objeto Place en el siguiente formato:
{ "name": "places/ChIJkR8FdQNB0VQRm64T_lv1g1g", "id": "ChIJkR8FdQNB0VQRm64T_lv1g1g", "types": [ "locality", "political" ], "formattedAddress": "Trinidad, CA 95570, USA", "displayName": { "text": "Trinidad", "languageCode": "en" } ... }
Por lo tanto, para especificar una máscara de campo para esta API, debes especificar los campos del objeto Place que deseas mostrar:
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
Llamada a gRPC
Para gRPC, establece una variable que contenga la máscara de campo de respuesta. Luego, puedes pasar esa variable a la solicitud.
const ( fieldMask = "places.formattedAddress,places.displayName" )
Consideraciones sobre la ruta de campo
Incluye solo los campos que necesites en la respuesta. Muestra solo los campos que necesitas:
- Disminuye los tiempos de procesamiento, por lo que los resultados se muestran con una latencia más baja.
- Garantiza un rendimiento de latencia estable si la API agrega más campos de respuesta en el futuro y esos campos nuevos requieren tiempo de procesamiento adicional. Si seleccionas todos los campos o todos los campos del nivel superior, es posible que experimentes una degradación del rendimiento cuando se incluyan automáticamente todos los campos nuevos en tu respuesta.
- Produce un tamaño de respuesta más pequeño, lo que se traduce en una mayor capacidad de procesamiento de red.
- Garantiza que no solicites datos innecesarios, lo que ayuda a evitar tiempos de procesamiento y cargos facturados innecesarios.