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

Avrupa Ekonomik Alanı (AEA) geliştiricileri

Giriş

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

Desteklenen veri alanlarının ve ilgili SKU'larının tam listesini Yer Veri Alanları (Yeni) bölümünde bulabilirsiniz. Her API'ye özgü alanlar hakkında bilgi için aşağıdakilere bakın:

  • Yer Ayrıntıları (Yeni) FieldMask parametreleri
  • Yakındaki Arama (Yeni) FieldMask parametreleri
  • Metin Arama (Yeni) FieldMask parametreleri

Yanıt alanı maskesi oluşturarak alan listesini belirtirsiniz. Ardından, $fields veya fields parametresini ya da X-Goog-FieldMask HTTP veya gRPC başlığını kullanarak yanıt alan maskesini yöntemlerden birine iletirsiniz.

Alan maskeleme, gereksiz veri istemediğinizden emin olmanızı sağlayan iyi bir tasarım uygulamasıdır. Bu sayede 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. Buradaki her yol, yanıt gövdesinde benzersiz bir alanı belirtir. Yol, üst düzey yanıt mesajından başlar ve belirtilen alana giden nokta ile ayrılmış bir yol kullanır.

Bir alan yolunu aşağıdaki gibi oluşturun:

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

* alan maskesini kullanarak tüm alanları isteyebilirsiniz.

Alan maskelerini oluşturma hakkında daha fazla bilgi için field_mask.proto dosyasına bakın.

Hangi alan maskelerinin kullanılacağını belirleme

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

  1. * alan maskesini kullanarak tüm alanları isteyin.
  2. Yanıtın alanlar hiyerarşisine bakın ve hangi alanları istediğinize karar verin.
  3. Alan hiyerarşisini kullanarak alan maskenizi oluşturun.

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

Örneğin, bir metin arama (yeni) işleminden gelen 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'

Bir metin arama (yeni) çağrısından gelen 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"
      },      ...
    },
  ...
  ]
}

Bu nedenle, 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 belirtildiğinde displayName öğesinin hem text hem de language alanları dahil edilir. Yalnızca text alanını istiyorsanız alan maskesini şu şekilde ayarlayın:

places.formattedAddress,places.displayName.text

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

Yer Ayrıntıları (Yeni), ş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 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 ayarlayın. Ardından bu değişkeni isteğe iletebilirsiniz.

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

Alan yoluyla ilgili dikkat edilmesi gereken noktalar

Yanıtınıza yalnızca ihtiyacınız olan alanları ekleyin. Yalnızca ihtiyacınız olan alanları döndürme:

  • İşleme sürelerini kısaltır. Böylece sonuçlarınız daha düşük gecikmeyle döndürülür.
  • API'ye gelecekte daha fazla yanıt alanı eklenirse ve bu yeni alanlar ek hesaplama süresi gerektirirse kararlı gecikme süresi performansı sağlar. Tüm alanları veya en üst düzeydeki tüm alanları seçerseniz tüm yeni alanlar yanıtınıza otomatik olarak dahil edildiğinde performans düşüşü yaşayabilirsiniz.
  • Daha küçük bir yanıt boyutuyla sonuçlanır. Bu da daha yüksek ağ verimi anlamına gelir.
  • Gereksiz veri istememenizi sağlar. Bu sayede gereksiz işlem süresi ve faturalandırılan ücretler önlenir.