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

Yer Ayrıntıları (Yeni), Yakındakiler 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 listesi yoktur. Bu listeyi atlarsanız yöntemler hata döndürür.

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

  • Yer Ayrıntıları (Yeni) FieldMask parametreleri
  • Yakındakiler araması (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 HTTP veya gRPC başlığını X-Goog-FieldMask kullanarak yanıt alanı maskesini yöntemlerden birine iletirsiniz.

Alan maskeleme, gereksiz veri istememenizi sağlayan iyi bir tasarım uygulamasıdır. Bu sayede gereksiz işlem süresi ve faturalandırma ücretlerinden kaçınabilirsiniz.

Yanıt alanı maskesi tanımlama

Yanıt alanı maskesi, her yolun yanıt gövdesinde 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 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

Hangi alan maskelerini kullanmak istediğinizi belirlemek için:

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

Yakınımda Arama (Yeni) ve Metin Arama (Yeni) için yanıt alanı maskesi tanımlama

Yakındakiler araması (yeni) ve metin araması (yeni), yanıtın places alanında bir yer nesnesi dizisi döndürür. Bu API'ler için places, yanıtın üst düzey alanıdır.

Örneğin, metin arama (yeni) sonucundaki yanıt nesnesini tamamen 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 gelen tam yanıt nesnesi şu şekildedir:

{
  "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 aşağıdaki 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'nin 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 yanıt alanı maskesi tanımlama

Yer Ayrıntıları, aşağıdaki 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. Ardından bu değişkeni isteğe iletebilirsiniz.

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

Alan yoluyla ilgili dikkat edilmesi gerekenler

Yanıta 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 bir gecikmeyle döndürülür.
  • API gelecekte daha fazla yanıt alanı eklerse ve bu yeni alanlar ek hesaplama süresi gerektirirse sabit gecikme performansı sağlar. Tüm alanları veya ü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 bir yanıt boyutuna neden olur. Bu da daha yüksek ağ işleme hızına yol açar.
  • Gereksiz veri istememenizi sağlar. Bu sayede gereksiz işlem süresi ve faturalandırılan ücretler önlenebilir.