Dokumen ini menjelaskan langkah-langkah yang Anda perlukan untuk mulai menggunakan Route Optimization API.
Prasyarat
Prosedur ini memandu Anda menyiapkan Akun Google Cloud dan project Google Cloud dengan penagihan yang diaktifkan. Anda juga harus memahami cara penagihan untuk penggunaan Route Optimization API.
- Tinjau penagihan dan biaya penggunaan di Penggunaan dan Penagihan Route Optimization API.
Pastikan Anda memiliki Akun Google Cloud.
Login ke Konsol Google CloudPastikan Anda memiliki project Google Cloud dengan penagihan yang diaktifkan.
Buka halaman Penagihan- Pilih project Anda untuk membuka halaman Billing.
Di halaman Penagihan:
- Jika penagihan telah diaktifkan untuk project yang dipilih, dan Anda hanya memiliki satu akun penagihan, halaman Billing akan terbuka.
- Jika Anda memiliki beberapa akun penagihan, pilih Go to linked billing account untuk melihat detail tentang akun penagihan yang terkait dengan project.
- Jika sudah memiliki akun penagihan, tetapi belum dikaitkan dengan project, Anda akan diminta untuk menautkan akun penagihan dengan project.
- Jika belum memiliki akun penagihan, atau Anda ingin membuat akun penagihan baru, pilih Manage Billing Accounts untuk membuat akun penagihan baru. Untuk mengetahui informasi selengkapnya, lihat Membuat akun Penagihan Cloud layanan mandiri baru.
Mengaktifkan API
Sebelum dapat menggunakan Route Optimization API, Anda harus menggunakan Konsol Google Cloud atau perintah gcloud untuk mengaktifkannya di project Google Cloud Anda.
Untuk mengaktifkan API:
Konsol
Buka halaman produk di Konsol Google Cloud:
Mengaktifkan Route Optimization APIKlik tombol Enable.
gcloud
gcloud services enable \ --project "PROJECT" \ "routeoptimization.googleapis.com"
Baca selengkapnya tentang Google Cloud SDK, Penginstalan Cloud SDK, dan perintah berikut:
Produk Google Maps Platform memerlukan panggilan API untuk menyertakan token OAuth guna mencegah penggunaan yang tidak sah.
Membuat token OAuth
Route Optimization API mendukung OAuth 2.0 untuk autentikasi. Google mendukung skenario OAuth 2.0 umum, seperti skenario untuk server web.
Dokumen ini menjelaskan cara meneruskan token OAuth ke panggilan Route Optimization API di lingkungan pengembangan Anda. Untuk mengetahui informasi selengkapnya tentang penggunaan OAuth di lingkungan produksi, lihat Metode autentikasi di Google.
Anda dapat memanggil Google Maps API secara langsung dengan membuat permintaan API ke server, atau Anda dapat menggunakan library klien untuk menyederhanakan kode Anda. Google Maps menyediakan library klien untuk Go, Java, Node.js, dan Python. Untuk informasi selengkapnya, lihat Library klien Route Optimization API.
Ringkasan OAuth
Anda dapat membuat dan mengelola token akses dengan OAuth dalam beberapa cara, bergantung pada lingkungan deployment Anda.
Anda dapat menggunakan OAuth 2.0 untuk interaksi server ke server antara aplikasi Anda dan layanan Google. Untuk skenario ini, Anda menggunakan akun layanan yang terkait dengan aplikasi Anda, bukan pengguna perorangan. Anda dapat membuat permintaan API menggunakan akun layanan tanpa melibatkan pengguna secara langsung. Untuk mengetahui informasi selengkapnya tentang metode autentikasi, lihat Metode autentikasi di Google.
Atau, Anda dapat mengintegrasikan Route Optimization API ke dalam aplikasi seluler Android atau iOS. Untuk informasi selengkapnya tentang penggunaan OAuth dan pengelolaan token akses untuk berbagai lingkungan deployment, lihat Menggunakan OAuth 2.0 untuk Mengakses Google API.
Cakupan OAuth
Untuk menggunakan OAuth dengan Route Optimization API, Anda harus menetapkan cakupan berikut ke token OAuth:
https://www.googleapis.com/auth/cloud-platform
Mengonfigurasi peran
Dokumen ini memberikan informasi tentang peran dan izin Identity and Access Management (IAM) untuk Route Optimization. Dengan IAM, Anda dapat memberikan akses terperinci ke resource Route Optimization tertentu dan membantu mencegah akses ke resource lain. IAM memungkinkan Anda menerapkan prinsip keamanan dengan hak istimewa terendah, yang menyatakan bahwa tidak ada yang boleh memiliki izin lebih dari yang sebenarnya mereka butuhkan.
Jika akun utama (akun pengguna, grup, atau layanan) memanggil Google Cloud API, akun utama tersebut harus memiliki izin IAM yang sesuai untuk menggunakan resource. Untuk memberikan akun utama izin yang diperlukan, Anda memberikan peran IAM kepada akun utama.
Untuk mempelajari pengelolaan akses di Google Cloud secara umum, lihat ringkasan IAM.
Peran IAM yang telah ditetapkan untuk mengizinkan akun utama mengakses Pengoptimalan Rute adalah:
-
Route Optimization Editor (roles/routeoptimization.editor): memberi pengguna atau akun layanan akses baca dan tulis ke resource Route Optimization dalam project. Hal ini mencakup kemampuan untuk memanggilOptimizeToursdanBatchOptimizeTours, serta mengambil operasi yang berjalan lama menggunakanGetOperation. -
Route Optimization Viewer (roles/routeoptimization.viewer): memberikan akses hanya baca ke resource Route Optimization dalam project. Peran ini memungkinkan kemampuan untuk memanggilOptimizeToursdan akses ke Operasi yang Berjalan Lama menggunakanGetOperation.
gcloud projects add-iam-policy-binding PROJECT \ --member user:someone@example.com \ --role roles/routeoptimization.editor
Untuk mengetahui informasi selengkapnya, lihat Memberikan peran IAM dengan menggunakan Konsol Google Cloud.
Contoh: Mencoba panggilan REST API di lingkungan pengembangan lokal Anda
Jika Anda tidak memiliki lingkungan yang menghasilkan token dan ingin mencoba Route Optimization API dengan token OAuth, gunakan prosedur di bagian ini.
Contoh ini menjelaskan cara menggunakan token OAuth yang disediakan oleh Kredensial Default Aplikasi (ADC) untuk melakukan panggilan. Untuk mengetahui informasi selengkapnya tentang cara menggunakan ADC untuk memanggil Google API dengan library klien, lihat Melakukan autentikasi menggunakan library klien.
Gunakan prosedur REST berikut hanya untuk pengembangan atau pengujian, bukan untuk produksi.
Prasyarat
Sebelum membuat permintaan REST menggunakan ADC, gunakan gcloud CLI untuk memberikan kredensial ke ADC:
Menginstal dan melakukan inisialisasi
gcloudCLI. Untuk mengetahui informasi selengkapnya, lihat Menginstal gcloud CLI.Lakukan autentikasi dengan
gcloudCLI:gcloud auth application-default login
Selesaikan proses login untuk menyimpan kredensial Anda dalam file kredensial lokal yang digunakan oleh ADC.
Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal.
Membuat permintaan REST
Dalam contoh ini, Anda meneruskan dua header permintaan:
Teruskan token OAuth di header
Authorizationmenggunakan perintah berikut untuk membuat token:gcloud auth application-default print-access-tokenToken yang ditampilkan memiliki cakupan
https://www.googleapis.com/auth/cloud-platform.Teruskan ID atau nama project Google Cloud Anda yang telah mengaktifkan penagihan di header
X-Goog-User-Project.
Untuk memanggil Route Optimization API menggunakan token OAuth, selesaikan langkah-langkah berikut:
Dalam contoh kode berikut, ganti PROJECT_NUMBER_OR_ID dengan nomor atau ID project Google Cloud Anda:
curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeTours' \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \ --data-binary @- << EOM { "model": { "shipments": [ { "pickups": [ { "arrivalLocation": { "latitude": 37.73881799999999, "longitude": -122.4161 } } ], "deliveries": [ { "arrivalLocation": { "latitude": 37.79581, "longitude": -122.4218856 } } ] } ], "vehicles": [ { "startLocation": { "latitude": 37.73881799999999, "longitude": -122.4161 }, "endLocation": { "latitude": 37.73881799999999, "longitude": -122.4161 } } ], "globalStartTime": "2023-01-13T16:00:00-08:00", "globalEndTime": "2023-01-14T16:00:00-08:00" } } EOMUntuk menyalin perintah
curl, klik Copy di contoh kode.Tempel perintah di jendela terminal, lalu jalankan.
Responsnya adalah objek JSON:
{
"routes": [
{
"vehicleStartTime": "2023-01-14T00:00:00Z",
"vehicleEndTime": "2023-01-14T00:39:22Z",
"visits": [
{
"isPickup": true,
"startTime": "2023-01-14T00:00:00Z",
"detour": "0s"
},
{
"startTime": "2023-01-14T00:19:53Z",
"detour": "0s"
}
],
"transitions": [
{
"travelDuration": "0s",
"waitDuration": "0s",
"totalDuration": "0s",
"startTime": "2023-01-14T00:00:00Z"
},
{
"travelDuration": "1193s",
"travelDistanceMeters": 9007,
"waitDuration": "0s",
"totalDuration": "1193s",
"startTime": "2023-01-14T00:00:00Z"
},
{
"travelDuration": "1169s",
"travelDistanceMeters": 9546,
"waitDuration": "0s",
"totalDuration": "1169s",
"startTime": "2023-01-14T00:19:53Z"
}
],
"metrics": {
"performedShipmentCount": 1,
"travelDuration": "2362s",
"waitDuration": "0s",
"delayDuration": "0s",
"breakDuration": "0s",
"visitDuration": "0s",
"totalDuration": "2362s",
"travelDistanceMeters": 18553
}
}
],
"metrics": {
"aggregatedRouteMetrics": {
"performedShipmentCount": 1,
"travelDuration": "2362s",
"waitDuration": "0s",
"delayDuration": "0s",
"breakDuration": "0s",
"visitDuration": "0s",
"totalDuration": "2362s",
"travelDistanceMeters": 18553
},
"usedVehicleCount": 1,
"earliestVehicleStartTime": "2023-01-14T00:00:00Z",
"latestVehicleEndTime": "2023-01-14T00:39:22Z"
}
}
Pemecahan masalah
Jika permintaan Anda menampilkan pesan error yang menyatakan bahwa API ini tidak mendukung kredensial pengguna akhir, lihat Memecahkan masalah penyiapan ADC.