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

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

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

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 ücretlerinden kaçınabilirsiniz.

Yanıt alanı maskesi tanımlama

Yanıt alanı maskesi, yolların virgülle ayrılmış bir listesidir. Her yol, yanıt iletisinde benzersiz bir alanı belirtir. Yol, üst düzey yanıt mesajından başlar ve belirtilen alana noktayla ayrılmış bir yol kullanır.

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

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

* alan maskesini kullanarak tüm alanları isteyebilirsiniz.

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

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 maskesini 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ımlayın

Yakındaki Arama (Yeni) ve Metin Arama (Yeni), yanıtın places alanında bir Yer nesneleri dizisi döndürür. Bu API'lerde places, yanıtın üst düzey alanıdır.

Örneğin, Metin Arama'daki (Yeni) bir yanıt nesnesinin tamamını görmek için:

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'

Metin Arama (Yeni) çağrısından alınan tam yanıt nesnesi ş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"
      },      ...
    },
  ...
  ]
}

Bu nedenle, aşağıdaki biçimde bu API'ler için 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 değerinin belirtilmesi, displayName öğesinin 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ımlayın (Yeni)

Yer Ayrıntıları şu formda 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"
  }
  ...
}

Dolayısıyla, döndürmek istediğiniz Yer 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 belirleyin. Daha sonra bu değişkeni isteğe aktarabilirsiniz.

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

Alan yoluyla dikkat edilmesi gereken noktalar

Yalnızca yanıtta zorunlu kılınan alanları ekleyin. Sadece ihtiyacınız olan alanları döndürün:

  • İşleme sürelerini kısaltarak sonuçlarınız daha düşük bir gecikmeyle döndürülür.
  • API gelecekte daha fazla yanıt alanı eklerse ve bu yeni alanlar daha fazla hesaplama süresi gerektirirse stabil gecikme performansı sağlar. Tüm alanları seçerseniz veya en üst düzeydeki tüm alanları seçerseniz tüm yeni alanlar yanıtınıza otomatik olarak dahil edildiğinde performansta düşüş yaşayabilirsiniz.
  • Daha küçük yanıt boyutunda sonuçlar, bu da daha yüksek ağ işleme hızı anlamına gelir.
  • Gereksiz veri isteğinde bulunmamanızı sağlar, böylece gereksiz işlem süresi ve faturalandırılan ücretler önlenir.