Memilih endpoint

Route Optimization API memiliki endpoint berikut:

  • OptimizeTours: Endpoint pemblokiran untuk permintaan tunggal.
  • OptimizeToursLongRunning: Endpoint non-blocking untuk permintaan tunggal dengan waktu penyelesaian yang lama.
  • OptimizeToursUri: Endpoint non-blocking untuk permintaan tunggal dengan persyaratan data yang besar.
  • BatchOptimizeTours: Endpoint non-blocking untuk beberapa permintaan yang diproses secara bersamaan.

Endpoint yang Anda pilih bergantung pada kasus penggunaan, ukuran permintaan, perkiraan waktu penyelesaian, dan apakah Anda perlu memproses beberapa permintaan secara bersamaan.

Membandingkan endpoint

Gunakan tabel berikut untuk mengidentifikasi endpoint yang tepat untuk kebutuhan Anda:

Endpoint OptimizeTours OptimizeToursLongRunning OptimizeToursUri BatchOptimizeTours
Jenis eksekusi Pemblokiran Tidak memblokir Tidak memblokir Tidak memblokir
Permintaan yang diproses Lajang Lajang Lajang Beberapa
Ukuran permintaan maksimum Kecil Sedang Besar Besar
Waktu penyelesaian Pendek Panjang Panjang Panjang
Memerlukan Google Cloud Storage Tidak Tidak Ya Ya

Memahami karakteristik endpoint

Tabel sebelumnya mencantumkan karakteristik berikut untuk membantu Anda memilih endpoint yang tepat:

  • Execution type: Menentukan cara aplikasi Anda menangani koneksi jaringan saat menunggu respons. Ada dua jenis:
    • Endpoint pemblokiran: Biarkan koneksi tetap terbuka hingga API menampilkan respons.
    • Endpoint non-blocking: Memproses permintaan di latar belakang. API segera menampilkan ID Operasi yang Berjalan Lama (LRO) yang Anda polling nanti untuk mengambil hasil.
  • Permintaan yang diproses: Menentukan apakah endpoint menangani satu permintaan perutean, atau memproses beberapa permintaan secara bersamaan.
  • Ukuran permintaan maksimum: Permintaan kecil dan sedang dikirim langsung secara inline dan memiliki batas sisi server. Permintaan besar melewati batas ini dengan menggunakan Google Cloud Storage. Temukan batas ukuran permintaan yang tepat di bagian detail endpoint.
  • Waktu penyelesaian: Permintaan sederhana dapat diselesaikan dalam waktu singkat, sedangkan permintaan kompleks memerlukan waktu penyelesaian yang lebih lama. Karena waktu penyelesaian menentukan berapa lama koneksi harus tetap terbuka, pilihan endpoint Anda bergantung pada batas waktu Anda. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi waktu tunggu dan batas waktu.
  • Memerlukan Google Cloud Storage: Endpoint yang memproses permintaan dan respons besar membaca dan menulis data langsung ke Google Cloud Storage. Daripada mengirim data dalam permintaan HTTP, Anda mengupload permintaan ke bucket Cloud Storage dan meneruskan URI ke API.

Detail endpoint

Route Optimization API memiliki empat endpoint. Bagian berikut menjelaskan cara kerja setiap endpoint dan menyertakan contoh permintaan.

OptimizeTours

OptimizeTours adalah endpoint pemblokiran yang ditujukan untuk permintaan tunggal dengan waktu penyelesaian yang singkat. API ini menampilkan rute yang dioptimalkan langsung dalam respons. Karena merupakan endpoint pemblokiran, Anda harus menjaga koneksi jaringan tetap terbuka hingga API selesai memproses permintaan agar dapat menampilkan respons. Endpoint ini menerima permintaan inline hingga sekitar 4 MB.

Lihat OptimizeTourscontoh permintaan

{
  "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 adalah endpoint non-blocking untuk permintaan tunggal dengan waktu penyelesaian yang lama. API ini menampilkan ID Operasi yang Berjalan Lama (LRO). Anda dapat melakukan polling ID ini menggunakan endpoint GetOperation untuk memeriksa status permintaan dan mengambil rute yang dioptimalkan terakhir. Endpoint ini menerima permintaan inline hingga sekitar 8 MB.

Lihat OptimizeToursLongRunningcontoh permintaan

{
  "model": {
    "shipments":[
      {
        "pickups":[
          {
            "arrivalLocation": {
              "latitude": 37.425062,
              "longitude": -122.095355
            }
          }
        ]
      }
    ],
    "vehicles":[
      {
        "travelMode": "DRIVING",
        "costPerKilometer": 1.0
      }
    ]
  }
}
    

OptimizeToursUri

OptimizeToursUri adalah endpoint non-blocking yang ditujukan untuk permintaan tunggal dengan waktu penyelesaian yang lama dan persyaratan data yang besar (lebih dari 8 MB). API ini menampilkan ID Operasi yang Berjalan Lama (LRO). Anda dapat melakukan polling ID ini menggunakan endpoint GetOperation untuk memeriksa status permintaan.

Daripada mengirim payload secara inline, Anda mengupload OptimizeToursRequest ke Google Cloud Storage. Kemudian, Anda meneruskan URI Cloud Storage untuk permintaan input dan tujuan output ke API. Server membaca data dari URI input Anda dan menulis OptimizeToursResponse akhir langsung ke URI output Anda. Anda dapat membaca rute yang dioptimalkan dari URI output ini setelah operasi selesai.

Lihat OptimizeToursUricontoh permintaan

{
  "input": {
    "uri": "gs://your-bucket/path/input/object.json"
  },
  "output": {
    "uri": "gs://your-bucket/path/output/object.json"
  }
}
    

BatchOptimizeTours

BatchOptimizeTours adalah endpoint non-blocking yang ditujukan untuk beberapa permintaan pengoptimalan independen yang diproses secara bersamaan. API ini akan menampilkan ID Operasi yang Berjalan Lama (LRO). Anda dapat melakukan polling ID ini menggunakan endpoint GetOperation untuk memeriksa status permintaan dan mengambil rute yang dioptimalkan akhir.

Daripada mengirim payload secara inline, Anda mengupload beberapa OptimizeToursRequest ke Google Cloud Storage. Kemudian, Anda meneruskan URI Cloud Storage ke API. Server membaca data dari URI input Anda dan menulis OptimizeToursResponse untuk setiap permintaan langsung ke URI output Anda.

Lihat BatchOptimizeTourscontoh permintaan

{
  "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"
      }
    }
  ]
}