Memilih kolom yang akan ditampilkan

Saat memanggil metode Place Details (New), Nearby Search (New), atau Text Search (New), Anda harus menentukan kolom mana yang ingin ditampilkan dalam respons. Tidak ada daftar {i>default<i} untuk kolom yang ditampilkan. Jika Anda menghilangkan daftar ini, metode akan menampilkan error.

Anda menentukan daftar kolom dengan membuat mask kolom respons. Kemudian, teruskan 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 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, tempat setiap jalur menentukan kolom unik dalam pesan respons. Jalur tersebut dimulai dari pesan respons tingkat atas 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 mana yang ingin Anda gunakan:

  1. Minta semua kolom menggunakan mask kolom `*`.
  2. Lihat hierarki kolom dalam respons, dan tentukan kolom yang Anda inginkan.
  3. Buat mask kolom menggunakan hierarki kolom.

Menentukan mask kolom respons untuk Nearby Search (Baru) dan Text Search (Baru)

Nearby Search (New) dan Text Search (New) menampilkan array objek Place di kolom places pada respons. Untuk API ini, places adalah kolom tingkat atas dari 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) tersedia dalam bentuk:

{
  "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 Anda ke:

places.formattedAddress,places.displayName

Menentukan displayName akan menyertakan 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 (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 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. Selanjutnya, 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:

  • Mempersingkat 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 memilih semua kolom di level teratas, Anda mungkin akan mengalami penurunan performa saat semua kolom baru otomatis disertakan dalam respons.
  • Menghasilkan ukuran respons yang lebih kecil, yang berarti throughput jaringan yang lebih tinggi.
  • Memastikan Anda tidak meminta data yang tidak diperlukan. Cara ini akan membantu Anda menghindari waktu pemrosesan dan biaya yang tidak perlu.