Route Optimization API'de aşağıdaki uç noktalar bulunur:
OptimizeTours: Tek istekler için engelleyici bir uç nokta.OptimizeToursLongRunning: Uzun çözüm süreleri olan tekli istekler için engelleme yapmayan bir uç nokta.OptimizeToursUri: Büyük veri gereksinimleri olan tekli istekler için engellenmeyen bir uç nokta.BatchOptimizeTours: Aynı anda işlenen birden fazla istek için engellenmeyen bir uç nokta.
Seçeceğiniz uç nokta; kullanım alanınıza, istek boyutuna, beklenen çözüm süresine ve aynı anda birden fazla isteği işlemeniz gerekip gerekmediğine bağlıdır.
Uç noktaları karşılaştırma
İhtiyaçlarınıza uygun uç noktayı belirlemek için aşağıdaki tabloyu kullanın:
| Uç nokta | OptimizeTours |
OptimizeToursLongRunning |
OptimizeToursUri |
BatchOptimizeTours |
|---|---|---|---|---|
| Yürütme türü | Blokaj | Engellemeyen | Engellemeyen | Engellemeyen |
| İşlenen istek sayısı | Tek | Tek | Tek | Birden çok |
| Maksimum istek boyutu | Küçük | Orta | Büyük | Büyük |
| Çözüm süresi | Kısa | Uzun | Uzun | Uzun |
| Google Cloud Storage gerektirir | Hayır | Hayır | Evet | Evet |
Uç nokta özelliklerini anlama
Önceki tabloda, doğru uç noktayı seçmenize yardımcı olacak aşağıdaki özellikler listelenmiştir:
- Yürütme türü: Uygulamanızın, yanıt beklerken ağ bağlantısını nasıl işleyeceğini belirler. İki tür vardır:
- Engelleme uç noktaları: API bir yanıt döndürene kadar bağlantıyı açık tutun.
- Engellenmeyen uç noktalar: İstekleri arka planda işler. API, sonuçları almak için daha sonra sorgulayacağınız bir uzun süreli işlem (LRO) kimliğini hemen döndürür.
- İşlenen istekler: Uç noktanın tek bir yönlendirme isteğini mi yoksa aynı anda birden fazla isteği mi işleyeceğini belirler.
- Maksimum istek boyutu: Küçük ve orta boyutlu istekler doğrudan satır içi olarak gönderilir ve sunucu tarafı sınırlara tabidir. Büyük istekler, Google Cloud Storage'ı kullanarak bu sınırları aşar. Tam istek boyutu sınırlarını, uç nokta ayrıntıları bölümlerinde bulabilirsiniz.
- Çözüm süresi: Basit istekler kısa sürede çözülebilirken karmaşık isteklerin çözülmesi daha uzun sürer. Çözüm süresi, bir bağlantının ne kadar süre açık kalması gerektiğini belirlediğinden uç nokta seçiminiz zaman aşımı sınırlarınıza bağlıdır. Daha fazla bilgi için Zaman aşımlarını ve son tarihleri yapılandırma başlıklı makaleyi inceleyin.
- Google Cloud Storage gerektirir: Büyük istekleri ve yanıtları işleyen uç noktalar, verileri doğrudan Google Cloud Storage'a okur ve yazar. Verileri HTTP isteğiyle göndermek yerine isteğinizi bir Cloud Storage paketine yükler ve URI'yi API'ye iletirsiniz.
Uç nokta ayrıntıları
Route Optimization API'nin dört uç noktası vardır. Aşağıdaki bölümlerde her bir uç noktanın işleyiş şekli açıklanmakta ve örnek bir istek verilmektedir.
OptimizeTours
OptimizeTours, kısa çözüm süreleri olan tekli istekler için tasarlanmış engelleyici bir uç noktadır. Doğrudan yanıtta optimize edilmiş bir rota döndürür.
Engelleme uç noktası olduğundan, API'nin yanıt döndürmek için isteği işlemeyi tamamlamasına kadar ağ bağlantınızı açık tutmanız gerekir. Bu uç nokta, yaklaşık 4 MB'a kadar satır içi istekleri kabul eder.
OptimizeTours örnek isteğini inceleyin
{ "model": { "shipments":[ { "pickups":[ { "arrivalLocation": { "latitude": 37.425062, "longitude": -122.095355 } } ], "deliveries":[ { "arrivalLocation": { "latitude": 37.424215, "longitude": -122.095260 } } ] } ], "vehicles":[ { "travelMode": "DRIVING", "costPerKilometer": 1.0 } ] } }
OptimizeToursLongRunning
OptimizeToursLongRunning, uzun çözüm süreleri olan tekli istekler için engellemeyen bir uç noktadır. Uzun süreli işlem (LRO) kimliği döndürür.
İstek durumunu kontrol etmek ve optimize edilmiş nihai rotaları almak için GetOperation uç noktasını kullanarak bu kimliği sorgulayabilirsiniz. Bu uç nokta, yaklaşık 8 MB'a kadar satır içi istekleri kabul eder.
OptimizeToursLongRunning örnek isteğini inceleyin
{ "model": { "shipments":[ { "pickups":[ { "arrivalLocation": { "latitude": 37.425062, "longitude": -122.095355 } } ] } ], "vehicles":[ { "travelMode": "DRIVING", "costPerKilometer": 1.0 } ] } }
OptimizeToursUri
OptimizeToursUri, uzun çözüm süreleri ve büyük veri gereksinimleri (8 MB'ın üzerinde) olan tekli istekler için tasarlanmış engellenmeyen bir uç noktadır. Uzun süreli işlem (LRO) kimliği döndürür. İstek durumunu kontrol etmek için GetOperation uç noktasını kullanarak bu kimliği sorgulayabilirsiniz.
Yükünüzü satır içi göndermek yerine OptimizeToursRequest dosyanızı Google Cloud Storage'a yüklersiniz. Ardından, hem giriş isteğiniz hem de çıkış hedefiniz için Cloud Storage URI'lerini API'ye iletirsiniz. Sunucu, giriş URI'nizdeki verileri okur ve nihai OptimizeToursResponse değerini doğrudan çıkış URI'nize yazar. İşlem tamamlandıktan sonra optimize edilmiş rotaları bu çıkış URI'sinden okuyabilirsiniz.
OptimizeToursUri örnek isteğini inceleyin
{ "input": { "uri": "gs://your-bucket/path/input/object.json" }, "output": { "uri": "gs://your-bucket/path/output/object.json" } }
BatchOptimizeTours
BatchOptimizeTours, aynı anda işlenen birden fazla bağımsız optimizasyon isteği için tasarlanmış engellenmeyen bir uç noktadır. Uzun süreli işlem (LRO) kimliği döndürür. İstek durumunu kontrol etmek ve optimize edilmiş nihai rotaları almak için GetOperation uç noktasını kullanarak bu kimliği sorgulayabilirsiniz.
Yükünüzü satır içi göndermek yerine Google Cloud Storage'a birden fazla OptimizeToursRequest yüklersiniz. Ardından Cloud Storage URI'larını API'ye iletirsiniz. Sunucu, giriş URI'lerinizdeki verileri okur ve her istek için doğrudan çıkış URI'lerinize bir OptimizeToursResponse yazar.
BatchOptimizeTours örnek isteğini inceleyin
{ "modelConfigs": [ { "inputConfig": { "gcsSource": { "uri": "gs://your-bucket/path/input/request_1.json" }, "dataFormat": "JSON" }, "outputConfig": { "gcsDestination": { "uri": "gs://your-bucket/path/output/response_1.json" }, "dataFormat": "JSON" } }, { "inputConfig": { "gcsSource": { "uri": "gs://your-bucket/path/input/request_2.json" }, "dataFormat": "JSON" }, "outputConfig": { "gcsDestination": { "uri": "gs://your-bucket/path/output/response_2.json" }, "dataFormat": "JSON" } } ] }