Memilih kolom yang akan ditampilkan

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. Anda kemudian lulus mask kolom respons ke salah satu metode dengan menggunakan parameter $fields atau fields, atau dengan 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. Jalurnya 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:

  1. Minta semua kolom menggunakan mask kolom `*`.
  2. Lihat hierarki kolom dalam respons, dan tentukan apa yang {i>field<i} yang Anda inginkan.
  3. 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 Anda menjadi:

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. Anda kemudian dapat meneruskan variabel tersebut ke permintaan.

const (
  fieldMask = "places.formattedAddress,places.displayName"
)

Pertimbangan jalur kolom

Hanya sertakan kolom yang Anda butuhkan dalam respons. Hanya mengembalikan 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 Anda memilih semua kolom, atau jika memilih semua kolom di tingkat teratas, Anda mungkin mengalami penurunan kinerja ketika semua bidang baru secara otomatis disertakan dalam jawaban Anda.
  • 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.