Route Optimization API có các điểm cuối sau:
OptimizeTours: Điểm cuối chặn cho các yêu cầu đơn lẻ.OptimizeToursLongRunning: Điểm cuối không chặn cho các yêu cầu đơn lẻ có thời gian giải quyết dài.OptimizeToursUri: Điểm cuối không chặn cho các yêu cầu đơn lẻ có yêu cầu dữ liệu lớn.BatchOptimizeTours: Điểm cuối không chặn cho nhiều yêu cầu được xử lý đồng thời.
Điểm cuối mà bạn chọn phụ thuộc vào trường hợp sử dụng, kích thước yêu cầu, thời gian giải quyết dự kiến và việc bạn có cần xử lý nhiều yêu cầu cùng lúc hay không.
So sánh các điểm cuối
Hãy sử dụng bảng sau để xác định điểm cuối phù hợp với nhu cầu của bạn:
| Điểm cuối | OptimizeTours |
OptimizeToursLongRunning |
OptimizeToursUri |
BatchOptimizeTours |
|---|---|---|---|---|
| Loại thực thi | Chặn | Không chặn | Không chặn | Không chặn |
| Số yêu cầu đã xử lý | Độc thân | Độc thân | Độc thân | Nhiều |
| Kích thước yêu cầu tối đa | Nhỏ | Trung bình | Lớn | Lớn |
| Thời gian giải | Ngắn | Dài | Dài | Dài |
| Cần có Google Cloud Storage | Không | Không | Có | Có |
Tìm hiểu các đặc điểm của điểm cuối
Bảng trước liệt kê các đặc điểm sau đây để giúp bạn chọn điểm cuối phù hợp:
- Loại thực thi: Xác định cách ứng dụng của bạn xử lý kết nối mạng trong khi chờ phản hồi. Có hai loại:
- Điểm cuối chặn: Giữ kết nối mở cho đến khi API trả về phản hồi.
- Điểm cuối không chặn: Xử lý các yêu cầu ở chế độ nền. API này ngay lập tức trả về một mã nhận dạng Thao tác diễn ra trong thời gian dài (LRO) mà bạn sẽ thăm dò sau để truy xuất kết quả.
- Yêu cầu được xử lý: Xác định xem điểm cuối xử lý một yêu cầu định tuyến hay xử lý nhiều yêu cầu cùng một lúc.
- Kích thước yêu cầu tối đa: Các yêu cầu nhỏ và trung bình được gửi trực tiếp cùng dòng và có giới hạn phía máy chủ. Các yêu cầu lớn sẽ bỏ qua những giới hạn này bằng cách sử dụng Google Cloud Storage. Tìm giới hạn kích thước yêu cầu chính xác trong phần thông tin chi tiết về điểm cuối.
- Thời gian giải quyết: Các yêu cầu đơn giản có thể được giải quyết trong thời gian ngắn, trong khi các yêu cầu phức tạp cần nhiều thời gian hơn để giải quyết. Vì thời gian giải quyết quyết định thời gian kết nối phải duy trì, nên lựa chọn điểm cuối của bạn phụ thuộc vào giới hạn thời gian chờ. Để biết thêm thông tin, hãy xem phần Định cấu hình thời gian chờ và thời hạn.
- Yêu cầu Google Cloud Storage: Các điểm cuối xử lý yêu cầu và phản hồi lớn sẽ đọc và ghi dữ liệu trực tiếp vào Google Cloud Storage. Thay vì gửi dữ liệu trong yêu cầu HTTP, bạn tải yêu cầu lên một bộ chứa Cloud Storage và truyền URI đến API.
Thông tin chi tiết về thiết bị đầu cuối
Route Optimization API có 4 điểm cuối. Các phần sau đây giải thích cách hoạt động của từng điểm cuối và đưa ra một yêu cầu mẫu.
OptimizeTours
OptimizeTours là một điểm cuối chặn dành cho các yêu cầu đơn lẻ có thời gian giải quyết ngắn. Hàm này trả về một tuyến đường được tối ưu hoá ngay trong phản hồi.
Vì đây là điểm cuối chặn, nên bạn phải duy trì kết nối mạng cho đến khi API xử lý xong yêu cầu để trả về phản hồi. Điểm cuối này chấp nhận các yêu cầu cùng dòng có kích thước tối đa khoảng 4 MB.
Xem một yêu cầu mẫu của OptimizeTours
{ "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 là một điểm cuối không chặn cho các yêu cầu đơn lẻ có thời gian giải quyết dài. Hàm này trả về một mã Thao tác chạy trong thời gian dài (LRO).
Bạn có thể thăm dò mã nhận dạng này bằng điểm cuối GetOperation để kiểm tra trạng thái yêu cầu và truy xuất các tuyến đường được tối ưu hoá cuối cùng. Điểm cuối này chấp nhận các yêu cầu cùng dòng có kích thước tối đa khoảng 8 MB.
Xem một yêu cầu mẫu của OptimizeToursLongRunning
{ "model": { "shipments":[ { "pickups":[ { "arrivalLocation": { "latitude": 37.425062, "longitude": -122.095355 } } ] } ], "vehicles":[ { "travelMode": "DRIVING", "costPerKilometer": 1.0 } ] } }
OptimizeToursUri
OptimizeToursUri là một điểm cuối không chặn dành cho các yêu cầu đơn lẻ có thời gian giải quyết dài và yêu cầu dữ liệu lớn (trên 8 MB). Phương thức này trả về một mã Thao tác chạy trong thời gian dài (LRO). Bạn có thể thăm dò mã nhận dạng này bằng cách sử dụng điểm cuối GetOperation để kiểm tra trạng thái yêu cầu.
Thay vì gửi tải trọng cùng dòng, bạn tải OptimizeToursRequest lên Google Cloud Storage. Sau đó, bạn truyền URI Cloud Storage cho cả yêu cầu đầu vào và đích đầu ra đến API. Máy chủ sẽ đọc dữ liệu từ URI đầu vào và ghi trực tiếp OptimizeToursResponse cuối cùng vào URI đầu ra. Bạn có thể đọc các tuyến đường được tối ưu hoá từ URI đầu ra này sau khi
hoạt động hoàn tất.
Xem một yêu cầu mẫu của OptimizeToursUri
{ "input": { "uri": "gs://your-bucket/path/input/object.json" }, "output": { "uri": "gs://your-bucket/path/output/object.json" } }
BatchOptimizeTours
BatchOptimizeTours là một điểm cuối không chặn dành cho nhiều yêu cầu tối ưu hoá độc lập được xử lý đồng thời. Phương thức này trả về một mã Thao tác chạy trong thời gian dài (LRO). Bạn có thể thăm dò mã nhận dạng này bằng cách sử dụng điểm cuối GetOperation để kiểm tra trạng thái yêu cầu và truy xuất tuyến đường tối ưu hoá cuối cùng.
Thay vì gửi tải trọng cùng dòng, bạn tải nhiều OptimizeToursRequest lên Google Cloud Storage. Sau đó, bạn truyền URI Cloud Storage đến API. Máy chủ đọc dữ liệu từ URI đầu vào và ghi trực tiếp OptimizeToursResponse cho mỗi yêu cầu vào URI đầu ra.
Xem yêu cầu mẫu BatchOptimizeTours
{ "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" } } ] }