Route Optimization API에는 다음 엔드포인트가 있습니다.
OptimizeTours: 단일 요청을 위한 차단 엔드포인트입니다.OptimizeToursLongRunning: 해결 시간이 긴 단일 요청을 위한 차단되지 않는 엔드포인트입니다.OptimizeToursUri: 데이터 요구사항이 큰 단일 요청을 위한 차단되지 않는 엔드포인트입니다.BatchOptimizeTours: 동시에 처리되는 여러 요청을 위한 차단되지 않는 엔드포인트입니다.
선택하는 엔드포인트는 사용 사례, 요청 크기, 예상 해결 시간, 여러 요청을 동시에 처리해야 하는지에 따라 달라집니다.
엔드포인트 비교
다음 표를 사용하여 필요에 맞는 올바른 엔드포인트를 확인하세요.
| 엔드포인트 | OptimizeTours |
OptimizeToursLongRunning |
OptimizeToursUri |
BatchOptimizeTours |
|---|---|---|---|---|
| 실행 유형 | 차단 | 차단되지 않음 | 차단되지 않음 | 차단되지 않음 |
| 처리된 요청 수 | 싱글 | 싱글 | 싱글 | 다수 |
| 최대 요청 크기 | 작게 | 보통 | 크게 | 크게 |
| 해결 시간 | 짧은 버전 | 길게 | 긴 정수 | 길게 |
| Google Cloud Storage 필요 | 아니요 | 아니요 | 예 | 예 |
엔드포인트 특성 이해
이전 표에는 적절한 엔드포인트를 선택하는 데 도움이 되는 다음 특성이 나와 있습니다.
- 실행 유형: 응답을 기다리는 동안 애플리케이션이 네트워크 연결을 처리하는 방식을 결정합니다. 두 가지 유형이 있습니다.
- 차단 엔드포인트: API가 응답을 반환할 때까지 연결을 열린 상태로 유지합니다.
- 차단되지 않는 엔드포인트: 백그라운드에서 요청을 처리합니다. API는 나중에 결과를 가져오기 위해 폴링하는 장기 실행 작업 (LRO) ID를 즉시 반환합니다.
- 처리된 요청: 엔드포인트가 단일 라우팅 요청을 처리하는지 아니면 여러 요청을 동시에 처리하는지 결정합니다.
- 최대 요청 크기: 소규모 및 중간 규모 요청은 인라인으로 직접 전송되며 서버 측 제한이 있습니다. 대규모 요청은 Google Cloud Storage를 사용하여 이러한 한도를 우회합니다. 엔드포인트 세부정보 섹션에서 정확한 요청 크기 한도를 확인하세요.
- 해결 시간: 간단한 요청은 짧은 시간 내에 해결할 수 있지만 복잡한 요청은 해결하는 데 시간이 더 걸립니다. 해결 시간은 연결이 열려 있어야 하는 시간을 나타내므로 엔드포인트 선택은 시간 제한에 따라 달라집니다. 자세한 내용은 제한 시간 및 기한 구성을 참고하세요.
- Google Cloud Storage 필요: 대규모 요청과 응답을 처리하는 엔드포인트는 Google Cloud Storage에 직접 데이터를 읽고 씁니다. HTTP 요청에서 데이터를 전송하는 대신 요청을 Cloud Storage 버킷에 업로드하고 URI를 API에 전달합니다.
엔드포인트 세부정보
Route Optimization API에는 4개의 엔드포인트가 있습니다. 다음 섹션에서는 각 엔드포인트의 작동 방식을 설명하고 요청 예시를 포함합니다.
OptimizeTours
OptimizeTours는 해결 시간이 짧은 단일 요청을 위한 차단 엔드포인트입니다. 대답에 최적화된 경로를 직접 반환합니다.
차단 엔드포인트이므로 API가 요청 처리를 완료하여 응답을 반환할 때까지 네트워크 연결을 열어 두어야 합니다. 이 엔드포인트는 최대 약 4MB의 인라인 요청을 허용합니다.
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은 해결 시간이 긴 단일 요청을 위한 비차단 엔드포인트입니다. 장기 실행 작업 (LRO) ID를 반환합니다.
GetOperation 엔드포인트를 사용하여 이 ID를 폴링하여 요청 상태를 확인하고 최종 최적화된 경로를 가져올 수 있습니다. 이 엔드포인트는 최대 약 8MB의 인라인 요청을 허용합니다.
OptimizeToursLongRunning 요청 예시 보기
{ "model": { "shipments":[ { "pickups":[ { "arrivalLocation": { "latitude": 37.425062, "longitude": -122.095355 } } ] } ], "vehicles":[ { "travelMode": "DRIVING", "costPerKilometer": 1.0 } ] } }
OptimizeToursUri
OptimizeToursUri는 해결 시간이 길고 데이터 요구사항이 큰 (8MB 초과) 단일 요청을 위한 차단되지 않는 엔드포인트입니다. 장기 실행 작업 (LRO) ID를 반환합니다. GetOperation 엔드포인트를 사용하여 이 ID를 폴링하여 요청 상태를 확인할 수 있습니다.
페이로드를 인라인으로 전송하는 대신 OptimizeToursRequest를 Google Cloud Storage에 업로드합니다. 그런 다음 입력 요청과 출력 대상의 Cloud Storage URI를 모두 API에 전달합니다. 서버는 입력 URI에서 데이터를 읽고 최종 OptimizeToursResponse를 출력 URI에 직접 씁니다. 작업이 완료되면 이 출력 URI에서 최적화된 경로를 읽을 수 있습니다.
OptimizeToursUri 요청 예시 보기
{ "input": { "uri": "gs://your-bucket/path/input/object.json" }, "output": { "uri": "gs://your-bucket/path/output/object.json" } }
BatchOptimizeTours
BatchOptimizeTours는 동시에 처리되는 여러 독립 최적화 요청을 위한 차단되지 않는 엔드포인트입니다. 장기 실행 작업 (LRO) ID를 반환합니다. GetOperation 엔드포인트를 사용하여 이 ID를 폴링하여 요청 상태를 확인하고 최종 최적화된 경로를 검색할 수 있습니다.
페이로드를 인라인으로 전송하는 대신 여러 OptimizeToursRequest를 Google Cloud Storage에 업로드합니다. 그런 다음 Cloud Storage URI를 API에 전달합니다. 서버는 입력 URI에서 데이터를 읽고 각 요청에 대한 OptimizeToursResponse를 출력 URI에 직접 씁니다.
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" } } ] }