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 engelleyici olmayan 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çeceğ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 |
| Requests processed (İşlenen isteklerin 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:
- Uç noktaları engelleme: API yanıt döndürene kadar bağlantıyı açık tutun.
- Engellemeyen uç noktalar: İstekleri arka planda işleyin. 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ında sınırlamaları vardır. Büyük istekler, Google Cloud Storage kullanılarak bu sınırları atlar. 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ümü 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çimi, 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ğinde göndermek yerine, isteğinizi bir Cloud Storage paketine yükleyip 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 nasıl çalıştığı açıklanmakta ve örnek bir istek yer almaktadır.
OptimizeTours
OptimizeTours, kısa çözüm sürelerine sahip tek istekler için tasarlanmış bir engelleme uç noktasıdır. Yanıtın içinde doğrudan optimize edilmiş bir rota döndürür.
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 olan satır içi istekleri kabul eder.
OptimizeToursÖrnek bir isteğe bakın.
{ "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ğe göz atın.
{ "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'tan fazla) olan tek istekler için tasarlanmış bir engellemeyen 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 olarak 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 son OptimizeToursResponse doğrudan çıkış URI'nize yazar. İşlem tamamlandıktan sonra bu çıkış URI'sinden optimize edilmiş rotaları okuyabilirsiniz.
OptimizeToursUriÖrnek bir isteğe bakın.
{ "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 bu kimliği GetOperation uç noktasını kullanarak yoklayabilirsiniz.
Yükünüzü satır içi olarak 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ğine bakın.
{ "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" } } ] }