Saat memanggil metode Place Details (New), Nearby Search (New), atau Text Search (New), Anda harus menentukan kolom yang ingin ditampilkan dalam respons. Tidak ada daftar default kolom yang ditampilkan. Jika Anda menghapus daftar ini, metode akan menampilkan error.
Daftar lengkap kolom data yang didukung dan SKU-nya yang sesuai dapat ditemukan di Kolom Data Tempat (Baru). Untuk informasi tentang kolom khusus untuk setiap API, lihat hal berikut:
- Parameter FieldMask Place Details (Baru)
- Parameter FieldMask Nearby Search (Baru)
- Parameter FieldMask Text Search (Baru)
Anda menentukan daftar kolom dengan membuat mask kolom respons. Kemudian, Anda meneruskan
mask kolom respons ke salah satu metode menggunakan parameter $fields
atau
fields
, atau menggunakan header HTTP atau gRPC X-Goog-FieldMask
.
Penyamaran kolom merupakan praktik desain yang baik untuk memastikan Anda tidak meminta data yang tidak diperlukan. Cara ini akan membantu Anda menghindari waktu pemrosesan dan biaya penagihan yang tidak perlu.
Menentukan mask kolom respons
Mask kolom respons adalah daftar jalur yang dipisahkan koma, dengan setiap jalur menentukan kolom unik dalam isi respons. Jalur dimulai dari pesan respons tingkat teratas dan menggunakan jalur yang dipisahkan titik ke kolom yang ditentukan.
Buat jalur kolom sebagai berikut:
topLevelField[.secondLevelField][.thirdLevelField][...]
Anda dapat meminta semua kolom menggunakan mask kolom *
.
Untuk mengetahui informasi selengkapnya tentang cara membuat mask kolom, lihat field_mask.proto.
Menentukan mask kolom yang akan digunakan
Berikut cara menentukan mask kolom yang ingin Anda gunakan:
- Minta semua kolom menggunakan mask kolom
*
. - Lihat hierarki kolom dalam respons, dan tentukan kolom yang Anda inginkan.
- Buat mask kolom menggunakan hierarki kolom.
Menentukan mask kolom respons untuk Nearby Search (Baru) dan Text Search (Baru)
Nearby Search (Baru) dan Text Search (Baru) menampilkan array objek Place di kolom places
respons. Untuk API ini, places
adalah kolom tingkat atas
respons.
Misalnya, untuk melihat objek respons lengkap dari Text Search (Baru):
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'
Objek respons lengkap dari panggilan Text Search (Baru) berbentuk:
{ "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" }, ... }, ... ] }
Oleh karena itu, Anda menentukan mask kolom untuk API ini dalam bentuk:
places[.secondLevelField][.thirdLevelField][...]
Jika Anda hanya ingin menampilkan kolom formattedAddress
dan displayName
, tetapkan mask kolom ke:
places.formattedAddress,places.displayName
Menentukan displayName
mencakup kolom text
dan language
dari
displayName
. Jika Anda hanya menginginkan kolom text
, tetapkan mask kolom sebagai:
places.formattedAddress,places.displayName.text
Menentukan mask kolom respons untuk Place Details (New)
Place Details menampilkan satu objek Place dalam bentuk:
{ "name": "places/ChIJkR8FdQNB0VQRm64T_lv1g1g", "id": "ChIJkR8FdQNB0VQRm64T_lv1g1g", "types": [ "locality", "political" ], "formattedAddress": "Trinidad, CA 95570, USA", "displayName": { "text": "Trinidad", "languageCode": "en" } ... }
Oleh karena itu, Anda menentukan mask kolom untuk API ini dengan menentukan kolom objek Place yang ingin ditampilkan:
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
Panggilan gRPC
Untuk gRPC, tetapkan variabel yang berisi mask kolom respons. Kemudian, Anda dapat meneruskan variabel tersebut ke permintaan.
const ( fieldMask = "places.formattedAddress,places.displayName" )
Pertimbangan jalur kolom
Hanya sertakan kolom yang Anda perlukan dalam respons. Hanya menampilkan kolom yang Anda perlukan:
- Mengurangi waktu pemrosesan, sehingga hasil Anda ditampilkan dengan latensi yang lebih rendah.
- Memastikan performa latensi yang stabil jika API menambahkan lebih banyak kolom respons di masa mendatang, dan kolom baru tersebut memerlukan waktu komputasi tambahan. Jika memilih semua kolom, atau jika memilih semua kolom di tingkat teratas, Anda mungkin mengalami penurunan performa saat semua kolom baru otomatis disertakan dalam respons.
- Menghasilkan ukuran respons yang lebih kecil, yang menghasilkan throughput jaringan yang lebih tinggi.
- Memastikan Anda tidak meminta data yang tidak diperlukan, yang membantu menghindari waktu pemrosesan dan tagihan yang tidak perlu.