Döndürülecek alanları seçin

Yer Ayrıntıları (Yeni), Yakındaki Arama (Yeni) veya Metin Arama (Yeni) yöntemlerini çağırırken yanıtta döndürülmesini istediğiniz alanları belirtmeniz gerekir. Döndürülen alanların varsayılan bir listesi yoktur. Bu listeyi çıkarırsanız yöntemler hata döndürür.

Alan listesini, bir yanıt alanı maskesi oluşturarak belirtirsiniz. Daha sonra yanıt alanı maskesini, $fields veya fields parametresini ya da X-Goog-FieldMask HTTP veya gRPC başlığını kullanarak her iki yönteme de iletebilirsiniz.

Alan maskeleme, gereksiz veri isteğinde bulunmadığınızdan emin olmak için iyi bir tasarım uygulamasıdır. Böylece gereksiz işleme süresi ve faturalandırma ücretlerinin önüne geçilir.

Yanıt alanı maskesi tanımlama

Yanıt alanı maskesi, her yolun yanıt mesajında benzersiz bir alanı belirttiği, virgülle ayrılmış bir yol listesidir. Yol, üst düzey yanıt mesajından başlar ve belirtilen alana ulaşmak için noktayla ayrılmış bir yol kullanır.

Aşağıdaki gibi bir alan yolu oluşturun:

topLevelField[.secondLevelField][.thirdLevelField][...]

* alan maskesi kullanarak tüm alanları isteyebilirsiniz.

Alan maskelerinin nasıl oluşturulacağı hakkında daha fazla bilgi için field_mask.proto dosyasını inceleyin.

Hangi alan maskelerinin kullanılacağını belirleme

Kullanmak istediğiniz alan maskelerini nasıl belirleyeceğiniz aşağıda açıklanmıştır:

  1. "*" alan maskesi kullanarak tüm alanları isteyin.
  2. Yanıttaki alanların hiyerarşisine bakın ve hangi alanları istediğinizi belirleyin.
  3. Alan hiyerarşisini kullanarak alan maskenizi oluşturun.

Yakındaki Arama (Yeni) ve Metin Arama (Yeni) için bir yanıt alanı maskesi tanımla

Yakındaki Arama (Yeni) ve Metin Arama (Yeni) seçenekleri, yanıtın places alanında bir Yer nesneleri dizisi döndürür. places, bu API'ler için yanıtın en üst düzey alanıdır.

Örneğin, bir Metin Arama'dan tam yanıt nesnesini görmek için (Yeni):

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'

Bir Metin Arama (Yeni) çağrısındaki yanıt nesnesinin tamamı şu biçimdedir:

{
  "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"
      },      ...
    },
  ...
  ]
}

Dolayısıyla, bu API'ler için şu biçimde bir alan maskesi belirtirsiniz:

places[.secondLevelField][.thirdLevelField][...]

Yalnızca formattedAddress ve displayName alanlarını döndürmek istiyorsanız alan maskenizi şu şekilde ayarlayın:

places.formattedAddress,places.displayName

displayName belirtilmesi, displayName özelliğinin hem text hem de language alanlarını içerir. Yalnızca text alanını istiyorsanız alan maskesini şu şekilde ayarlayın:

places.formattedAddress,places.displayName.text

Yer Ayrıntıları için bir yanıt alanı maskesi tanımla (Yeni)

Yer Ayrıntıları şu biçimde tek bir Yer nesnesi döndürür:

{
  "name": "places/ChIJkR8FdQNB0VQRm64T_lv1g1g",
  "id": "ChIJkR8FdQNB0VQRm64T_lv1g1g",
  "types": [
    "locality",
    "political"
  ],
  "formattedAddress": "Trinidad, CA 95570, USA",
  "displayName": {
    "text": "Trinidad",
    "languageCode": "en"
  }
  ...
}

Bu nedenle, döndürmek istediğiniz Place nesnesinin alanlarını belirterek bu API için bir alan maskesi belirtirsiniz:

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

gRPC çağrısı

gRPC için yanıt alanı maskesini içeren bir değişken ayarlayın. Daha sonra bu değişkeni isteğe geçirebilirsiniz.

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

Alan yoluyla ilgili dikkat edilmesi gereken noktalar

Yanıtta yalnızca gerekli gördüğünüz alanları ekleyin. Yalnızca ihtiyacınız olan alanları geri vererek:

  • İşleme sürelerini kısaltır, böylece sonuçlarınızın daha düşük bir gecikmeyle döndürülmesini sağlar.
  • API gelecekte daha fazla yanıt alanı eklerse ve bu yeni alanlar ekstra hesaplama süresi gerektirirse gecikme performansının istikrarlı olmasını sağlar. Tüm alanları seçerseniz veya en üst düzeyde tüm alanları seçerseniz yanıtınıza tüm yeni alanlar otomatik olarak eklendiğinde performansta düşüş yaşayabilirsiniz.
  • Daha küçük bir yanıt boyutuyla sonuçlanır ve bu, daha yüksek ağ işleme hızı anlamına gelir.
  • Gereksiz veri talebinde bulunmamanızı sağlar, bu da gereksiz işlem süresini ve faturalandırılmış ücretleri önlemenize yardımcı olur.