Route Optimization API'nin aşağıdaki uç noktaları vardır:
OptimizeTours: Tek istekler için engelleme uç noktası.OptimizeToursLongRunning: Uzun çözüm sürelerine sahip tek istekler için engellemeyen bir uç nokta.OptimizeToursUri: Büyük veri gereksinimlerine sahip tek istekler için engellemeyen bir uç nokta.BatchOptimizeTours: Aynı anda işlenen birden fazla istek için engellemeyen bir uç nokta.
Seçtiğiniz uç nokta; kullanım alanınıza, istek boyutunuza, 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.
- Engellemeyen uç noktalar: İstekleri arka planda işler. API, sonuçları almak için daha sonra yokladığı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 işlediğini yoksa aynı anda birden fazla isteği mi işlediğ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ırları vardır. Büyük istekler, Google Cloud Storage kullanılarak 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, 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ış bir engelleme uç noktasıdır. Yanıtın içinde doğrudan optimize edilmiş bir rota gösterir.
Bu bir engelleme uç noktası olduğundan, API'nin isteği işlemesi tamamlanana 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 tek 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 son optimize edilmiş rotaları almak için GetOperation uç noktasını kullanarak bu kimliği yoklayabilirsiniz. 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 bu kimliği GetOperation uç noktasını kullanarak yoklayabilirsiniz.
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, verileri giriş URI'nizden okur ve son OptimizeToursResponse doğrudan çıkış URI'nize yazar. İşlem tamamlandıktan sonra bu çıkış URI'sinden optimize edilmiş rotaları 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ış bir engellemeyen uç noktadır. Uzun süreli işlem (LRO) kimliği döndürür. İstek durumunu kontrol etmek ve son optimize edilmiş rotaları almak için GetOperation uç noktasını kullanarak bu kimliği yoklayabilirsiniz.
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'lerini 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" } } ] }