Tek Engellemeyen Optimizasyon API Yöntemleri

Bu kılavuzda, kullanıcıların tek bir engellemeyen optimizasyon isteğinde bulunmasına olanak tanıyan OptimizeToursLongRunning ve OptimizeToursUri API yöntemlerinin deneysel lansmanı tanıtılmaktadır. Engellemeyen optimizasyonda kullanıcı, GetOperation çağrılarak optimizasyonun durumuna referans vermek için kullanılabilecek bir Operation proto'yu hızlıca alır. Daha fazla bilgi için Uzun Süreli İşlemler başlıklı makaleyi inceleyin.

Bu engellemeyen yöntemler, optimizasyon yürütülürken istemcinin sunucuyla bağlantıyı sürdürmesi gerekmediğinden engelleme OptimizeTours yöntemine göre güvenilirlik avantajları sunar. Ayrıca, bu yeni yöntemler, her optimizasyon tek bir uzun süreli işlem (LRO) ile ilişkilendirildiğinden BatchOptimizeTours ile karşılaştırıldığında hataların ayıklanmasını kolaylaştırır.

Optimizasyon isteğini satır içi olarak göndermeyi tercih eden kullanıcılar OptimizeToursLongRunning yöntemini, istekleri yüklemeyi ve yanıtı Google Cloud Storage'ı kullanarak okumayı tercih eden kullanıcılar ise OptimizeToursUri yöntemini kullanabilir.

OptimizeToursLongRunning

Örnek: OptimizeToursLongRunning isteğinde bulunma

İstek göndermeden önce aşağıdaki parametreleri ortamınıza uygun değerlerle değiştirin:

  • Uygulama Varsayılan Kimlik Bilgileri'nin OAuth Kullanma bölümünde açıklandığı şekilde yapılandırıldığından emin olun.
  • PROJECT_NUMBER_OR_ID değerini Cloud proje numaranız veya kimliğiniz olarak ayarlayın.

    Aşağıdaki komut, Rota Optimizasyonu API'sine bir OptimizeToursLongRunning isteği gönderir ve bununla ilişkili bir işlem kimliği alır. İşlemin durumunu sorgulamak için GetOperation yöntemi kullanılabilir. İşlem tamamlandığında meta verilerde son OptimizeToursResponse de yer alır.

    curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeToursLongRunning' \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    --data @- <<EOM
    {
      "model": {
        "shipments": [
          {
            "pickups": [
              {
                "arrivalLocation": {
                  "latitude": 37.42506261000996,
                  "longitude": -122.09535511930135
                }
              }
            ],
            "deliveries": [
              {
                "arrivalLocation": {
                  "latitude": 37.42421503206021,
                  "longitude": -122.09526063135228
                }
              }
            ]
          }
        ],
        "vehicles": [
          {
            "travelMode": "DRIVING",
            "costPerKilometer": 1.0
          }
        ],
      }
    }
    EOM

OptimizeToursUri

BatchOptimizeTours gibi, optimizasyon isteğinizi ve yanıtınızı Google Cloud Storage'da depolamaya devam etmek için OptimizeToursUri kullanabilirsiniz. Cloud Storage URI'leri OptimizeToursUri istek mesajında belirtilmelidir. Döndürülen Operation durumu yalnızca gönderilen tek OptimizeToursRequest ile ilişkilidir.

Örnek: OptimizeToursUri isteğinde bulunma

İstek göndermeden önce aşağıdaki parametreleri ortamınıza uygun değerlerle değiştirin:

  • Uygulama Varsayılan Kimlik Bilgileri'nin OAuth Kullanma bölümünde açıklandığı şekilde yapılandırıldığından emin olun.
  • PROJECT_NUMBER_OR_ID değerini Cloud proje numaranız veya kimliğiniz olarak ayarlayın.

    Aşağıdaki komut, Rota Optimizasyonu API'sine bir OptimizeToursUri isteği gönderir ve bununla ilişkili bir işlem kimliği alır. İşlemin durumunu sorgulamak için GetOperation yöntemini kullanın. İşlem tamamlandığında OptimizeToursResponse, istekte belirtilen çıkış URI yolu üzerinde uzaktan saklanır.

    curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeToursUri' \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    --data @- <<EOM
    {
      "input": {
        "uri": "gs://bucket/path/input/object.json"
      },
      "output": {
        "uri": "gs://bucket/path/output/object.json"
      }
    }
    EOM