Tek Engellemeyen Optimizasyon API Yöntemleri

Bu kılavuzda, kullanıcıların tek bir engellenmeyen optimizasyon isteği göndermesine olanak tanıyan OptimizeToursLongRunning ve OptimizeToursUri API yöntemlerinin deneysel lansmanı tanıtılmaktadır. Engellemeyen optimizasyonda kullanıcı, yöntemden hızlı bir şekilde bir Operation proto alır. Bu proto, GetOperation çağrılarak optimizasyon durumuna referans vermek için kullanılabilir. Daha fazla bilgi için Uzun Süreli İşlemler bölümüne bakın.

Bu engellenmeyen yöntemler, optimizasyon yürütülürken istemcinin sunucuyla bağlantısını koruması gerekmediğinden engelleyen OptimizeTours yöntemine kıyasla güvenilirlik avantajları sağlar. Ayrıca bu yeni yöntemler, her optimizasyon tek bir uzun süreli işlemle (LRO) ilişkilendirildiğinden, BatchOptimizeTours'a kıyasla hata ayıklama işlemini kolaylaştırır.

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

OptimizeToursLongRunning

Örnek: OptimizeToursLongRunning isteği gönderme

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

  • Uygulama Varsayılan Kimlik Bilgileri'ni OAuth'u kullanma bölümünde açıklandığı şekilde yapılandırdığınızdan emin olun.
  • PROJECT_NUMBER_OR_ID değerini Cloud proje numaranız veya kimliğiniz olarak ayarlayın.

    Aşağıdaki komut, Route Optimization API'ye 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 veriler nihai OptimizeToursResponse değerini de içerir.

    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'i 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ği gönderme

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

  • Uygulama Varsayılan Kimlik Bilgileri'ni OAuth'u kullanma bölümünde açıklandığı şekilde yapılandırdığınızdan emin olun.
  • PROJECT_NUMBER_OR_ID değerini Cloud proje numaranız veya kimliğiniz olarak ayarlayın.

    Aşağıdaki komut, Route Optimization API'ye 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ıktan sonra OptimizeToursResponse, istekte sağlanan çıkış URI yolunda uzaktan depolanı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