Döndürülecek alanları seçin
Rota veya rota matrisi istediğinizde, yanıtın hangi bilgileri döndürmesi gerektiğini belirtmek için alan maskesi kullanmanız gerekir. Döndürülen alanların varsayılan bir listesi yoktur. Alan maskesi belirtmezseniz yöntemler hata döndürür.
Alan maskesi kullanmak, gereksiz veri istememenizi de sağlar. Bu da yanıt gecikmesine yardımcı olur ve sisteminizin ihtiyaç duymadığı bilgilerin döndürülmesini önler.
İhtiyacınız olan alanların listesini yanıt alanı maskesinde belirtirsiniz. Ardından, URL parametresi $fields veya fields'yi ya da HTTP veya gRPC başlığı X-Goog-FieldMask'yi kullanarak yanıt alan maskesini yöntemlerden birine iletirsiniz.
URL parametreleri hakkında daha fazla bilgi için Sistem Parametreleri başlıklı makaleyi inceleyin.
Yanıt alan maskesi tanımlama
Yanıt alan maskesi, virgülle ayrılmış bir yol listesidir. Buradaki her yol, yanıt mesajında benzersiz bir alanı belirtir. Yol, üst düzey yanıt mesajından başlar ve belirtilen alana giden, noktayla ayrılmış bir yol kullanır.
Aşağıdaki gibi bir alan yolu oluşturup belirtin:
- İhtiyacınız olan bilgileri içeren alanları bulun. Ayrıntılar için Alan Referansları başlıklı makaleyi inceleyin.
- İhtiyacınız olan alanların yollarını belirleyin ve bu alanlar için alan maskeleri oluşturun: Ayrıntılar için Kullanmak istediğiniz alan maskesini belirleme başlıklı makaleyi inceleyin.
İhtiyacınız olan tüm alanların alan maskelerini birleştirin ve alan maskelerini virgülle ayırın. Örneğin, rota ayağı için
distanceMeters'yı ve her rota ayağı adımının süresini istemek için ikisini de virgülle ayırarak boşluk bırakmadan girin:routes.legs.distanceMeters,routes.legs.steps.duration
Alan maskesini API isteğinizle birlikte gönderin. Örneğin, bir curl isteğinde alan maskesini
-HveX-Goog-FieldMaskile belirtirsiniz:-H X-Goog-FieldMask: routes.legs.distanceMeters,routes.legs.steps.duration
Alan Referansları
Alan maskeleri aracılığıyla bir yanıtta isteyebileceğiniz alanları görmek için aşağıdaki listede bağlantısı verilen Routes API Compute Routes veya Compute Route Matrix referanslarına bakın. Referansta gösterildiği gibi, alanları camel case olarak belirtin. Örneğin, routePreference.
Bu referanslar, kullanılabilen alanları içerir. Ancak tam alan maskesi yolunu belirlemek için alanların hiyerarşisine bakmanız gerekir. Alanların hiyerarşisini alma hakkında ayrıntılı bilgi için Kullanmak istediğiniz alan maskesini belirleme başlıklı makaleyi inceleyin.
- Rota hesaplama alan maskesi
- Compute Route Matrix alan maskeleri
- REST: Döndürülecek yanıt gövdesinin alanlarını belirtir.
- gRPC: Yanıtta döndürülecek RouteMatrixElement nesnesinin alanlarını belirtir.
Hangi alan maskelerinin kullanılacağını belirleme
Hangi alanları kullanmak istediğinizi belirlemek ve bu alanlar için alan maskeleri oluşturmak üzere aşağıdaki adımları uygulayabilirsiniz:
*alan maskesini kullanarak tüm alanları isteyin.- İstediğiniz alanlar için yanıttaki alanların hiyerarşisine bakın.
Alan maskelerinizi oluştururken önceki adımda gösterilen alanların hiyerarşisini kullanarak şu biçimi kullanın:
topLevelField[.secondLevelField][.thirdLevelField][...]
Örneğin, bir rotadan alınan bu kısmi yanıt için:
"routes": [ { "legs": [ { "steps": [ {"distanceMeters": 119}, {"distanceMeters": 41} ] } ], "distanceMeters": 160 } ]
Rota ayağı için yalnızca distanceMeters alanını (önceki örnekteki son distanceMeters) döndürmek istiyorsanız alan maskeniz aşağıdaki gibi olur:
routes.legs.distanceMeters
Bunun yerine, rota ayağının her adımı için distanceMeters alanını döndürmek istiyorsanız (ör. önceki örnekteki steps altında distanceMeters), alan maskeniz aşağıdaki gibi olur:
routes.legs.steps.distanceMeters
Yukarıdaki sonuçla birlikte her ikisini de döndürmek istiyorsanız alan maskeniz aşağıdaki gibi olur:
routes.legs.distanceMeters,routes.legs.steps.distanceMeters
Örnek alan maskesi yolları
Bu bölümde, REST ve gRPC çağrılarında yanıt alanı maskesinin bir parçası olarak alan yolunun nasıl belirtileceğine dair daha fazla örnek yer almaktadır.
computeRoutes için REST çağrısı
İlk örnekte, rota hesaplamak için computeRoutes yöntemine yönelik bir REST çağrısı kullanırsınız. Bu örnekte, yanıtta rota distanceMeters ve duration alanlarını döndürmek için üstbilgide alan maskeleri belirtirsiniz. Alan adının önüne routes eklemeyi unutmayın.
X-Goog-FieldMask: routes.distanceMeters,routes.duration
computeRouteMatrix için REST çağrısı
Rota matrisini hesaplamak için kullanılan REST computeRouteMatrix yönteminde, her başlangıç ve hedef kombinasyonu için originIndex, destinationIndex ve duration değerlerinin döndürüleceğini başlıkta belirtin:
X-Goog-FieldMask: originIndex,destinationIndex,duration
computeRoutes için gRPC çağrısı
Rota hesaplamak için kullanılan gRPC computeRoutes yönteminde, yanıttaki rota distanceMeters, duration ve kodlanmış çoklu çizgi alanlarını döndürmek 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 = "routes.distanceMeters,routes.duration,routes.polyline.encodedPolyline" )
computeRouteMatrix için gRPC çağrısı
Rota matrisini hesaplamak için kullanılan gRPC computeRouteMatrix yönteminde, her başlangıç ve hedef kombinasyonu için originIndex, destinationIndex ve duration değerlerinin döndürüleceğini belirtmek üzere yanıt alanı maskesini içeren bir değişken ayarlayın. Ardından bu değişkeni isteğe iletebilirsiniz:
const ( fieldMask = "originIndex,destinationIndex,duration" )
Alan yoluyla ilgili dikkat edilmesi gereken noktalar
Yalnızca ihtiyacınız olan alanları döndürmek için yanıtta yalnızca gerekli alanları ekleyin:
- İşleme sürelerini kısaltır. Böylece sonuçlarınız daha düşük bir gecikmeyle döndürülür.
- Gecikme performansının istikrarlı olmasını sağlar. Tüm alanları veya üst düzeydeki tüm alanları seçerseniz yeni alanlar eklenip yanıtınıza otomatik olarak dahil edildiğinde performans düşüşü yaşayabilirsiniz.
- Daha küçük bir yanıt boyutu sağlar. Bu da daha yüksek ağ işleme kapasitesi anlamına gelir.
- Gereksiz veri istememenizi sağlar. Bu sayede gereksiz işlem süresi ve faturalandırılan ücretler önlenir.
Alan maskesi oluşturma hakkında daha fazla bilgi için field_mask.proto sayfasına bakın.