Saat Anda memanggil Place Details (Baru), Nearby Search (Baru), atau Penelusuran Teks (Baru), Anda harus menentukan kolom mana yang ingin Anda tampilkan dalam respons. Tidak ada daftar default kolom yang ditampilkan. Jika Anda menghilangkan daftar ini, metode akan menampilkan error.
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 adalah praktik desain yang baik untuk memastikan bahwa Anda tidak meminta data yang tidak perlu, yang membantu menghindari waktu pemrosesan dan penagihan yang tidak perlu tambahan.
Menentukan mask kolom respons
Mask kolom respons adalah daftar jalur yang dipisahkan koma, dengan setiap jalur menentukan kolom unik dalam pesan 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 informasi selengkapnya tentang cara membuat mask kolom, lihat dokumentasi field_mask.proto.
Menentukan mask kolom yang akan digunakan
Berikut cara menentukan mask kolom mana yang ingin digunakan:
- 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 level teratas
kolom 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 Text Search (Baru) berupa:
{ "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 menetapkan 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
pada
displayName
. Jika Anda hanya menginginkan kolom text
, tetapkan mask kolom sebagai:
places.formattedAddress,places.displayName.text
Menentukan mask kolom respons untuk Place Details (Baru)
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 menetapkan mask kolom untuk API ini dengan menentukan kolom objek Tempat yang ingin Anda tampilkan:
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:
- Mempercepat waktu pemrosesan, sehingga hasil ditampilkan dengan latensi yang rendah.
- Memastikan performa latensi stabil jika API menambahkan lebih banyak kolom respons di masa depan, dan isian baru tersebut membutuhkan 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, sehingga menghasilkan jaringan yang lebih besar yang konsisten.
- Memastikan Anda tidak meminta data yang tidak perlu, yang membantu menghindari waktu pemrosesan yang tidak perlu dan biaya yang ditagih.