API оптимизации маршрутов имеет следующие конечные точки:
-
OptimizeTours: блокирующая конечная точка для одиночных запросов. -
OptimizeToursLongRunning: Неблокирующая конечная точка для одиночных запросов с длительным временем решения. -
OptimizeToursUri: Неблокирующая конечная точка для одиночных запросов с большими объемами данных. -
BatchOptimizeTours: неблокирующая конечная точка для одновременной обработки нескольких запросов.
Выбор конечной точки зависит от вашего сценария использования, размера запроса, ожидаемого времени решения и необходимости одновременной обработки нескольких запросов.
Сравните конечные точки
Воспользуйтесь следующей таблицей, чтобы определить подходящую конечную точку для ваших нужд:
| Конечная точка | OptimizeTours | OptimizeToursLongRunning | OptimizeToursUri | BatchOptimizeTours |
|---|---|---|---|---|
| Тип исполнения | Блокировка | Неблокирующий | Неблокирующий | Неблокирующий |
| Запросы обработаны | Одинокий | Одинокий | Одинокий | Несколько |
| Максимальный размер запроса | Маленький | Середина | Большой | Большой |
| Время решения | Короткий | Длинный | Длинный | Длинный |
| Требуется облачное хранилище Google. | Нет | Нет | Да | Да |
Понимание характеристик конечной точки
В предыдущей таблице перечислены следующие характеристики, которые помогут вам выбрать подходящую конечную точку:
- Тип выполнения : определяет, как ваше приложение обрабатывает сетевое соединение в ожидании ответа. Существует два типа:
- Блокирующие конечные точки : Поддерживайте соединение открытым до тех пор, пока API не вернет ответ.
- Неблокирующие конечные точки : обрабатывают запросы в фоновом режиме. API немедленно возвращает идентификатор длительной операции (LRO) , который вы можете запросить позже для получения результатов.
- Обработанные запросы : Определяет, обрабатывает ли конечная точка один запрос маршрутизации или несколько запросов одновременно.
- Максимальный размер запроса : Небольшие и средние запросы отправляются непосредственно в потоке и имеют ограничения на стороне сервера. Большие запросы обходят эти ограничения, используя Google Cloud Storage. Точные ограничения на размер запроса можно найти в разделе с подробной информацией о конечных точках.
- Время решения : простые запросы могут быть решены за короткое время, в то время как сложные запросы требуют больше времени. Поскольку время решения определяет, как долго соединение должно оставаться открытым, выбор конечной точки зависит от ваших ограничений по времени ожидания. Для получения дополнительной информации см. раздел «Настройка тайм-аутов и крайних сроков» .
- Требуется Google Cloud Storage : конечные точки, обрабатывающие большие запросы и ответы, считывают и записывают данные непосредственно в Google Cloud Storage. Вместо отправки данных в HTTP-запросе вы загружаете свой запрос в корзину Cloud Storage и передаете URI в API.
Сведения о конечной точке
API оптимизации маршрутов имеет четыре конечные точки. В следующих разделах объясняется, как работает каждая конечная точка, и приводится пример запроса.
OptimizeTours
OptimizeTours — это блокирующая конечная точка, предназначенная для одиночных запросов с коротким временем решения. Она возвращает оптимизированный маршрут непосредственно в ответе. Поскольку это блокирующая конечная точка, необходимо поддерживать открытое сетевое соединение до тех пор, пока API не завершит обработку запроса, чтобы получить ответ. Эта конечная точка принимает встроенные запросы размером до примерно 4 МБ.
См. пример запроса 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). Вы можете опрашивать этот идентификатор с помощью конечной точки GetOperation , чтобы проверить статус запроса и получить окончательные оптимизированные маршруты. Эта конечная точка принимает встроенные запросы размером до примерно 8 МБ.
См. пример запроса OptimizeToursLongRunning
{ "model": { "shipments":[ { "pickups":[ { "arrivalLocation": { "latitude": 37.425062, "longitude": -122.095355 } } ] } ], "vehicles":[ { "travelMode": "DRIVING", "costPerKilometer": 1.0 } ] } }
OptimizeToursUri
OptimizeToursUri — это неблокирующая конечная точка , предназначенная для одиночных запросов с длительным временем решения и большими объемами данных (более 8 МБ). Она возвращает идентификатор длительной операции (LRO). Вы можете проверить статус запроса, используя конечную точку GetOperation , чтобы получить этот идентификатор.
Вместо отправки данных непосредственно в запрос, вы загружаете свой OptimizeToursRequest в Google Cloud Storage. Затем вы передаете URI Cloud Storage как для входного запроса, так и для выходного адреса в 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). Вы можете опрашивать этот идентификатор с помощью конечной точки GetOperation , чтобы проверить статус запроса и получить окончательные оптимизированные маршруты.
Вместо отправки данных непосредственно в API, вы загружаете несколько запросов OptimizeToursRequest в Google Cloud Storage. Затем вы передаете URI Cloud Storage в 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" } } ] }
API оптимизации маршрутов имеет следующие конечные точки:
-
OptimizeTours: блокирующая конечная точка для одиночных запросов. -
OptimizeToursLongRunning: Неблокирующая конечная точка для одиночных запросов с длительным временем решения. -
OptimizeToursUri: Неблокирующая конечная точка для одиночных запросов с большими объемами данных. -
BatchOptimizeTours: неблокирующая конечная точка для одновременной обработки нескольких запросов.
Выбор конечной точки зависит от вашего сценария использования, размера запроса, ожидаемого времени решения и необходимости одновременной обработки нескольких запросов.
Сравните конечные точки
Воспользуйтесь следующей таблицей, чтобы определить подходящую конечную точку для ваших нужд:
| Конечная точка | OptimizeTours | OptimizeToursLongRunning | OptimizeToursUri | BatchOptimizeTours |
|---|---|---|---|---|
| Тип исполнения | Блокировка | Неблокирующий | Неблокирующий | Неблокирующий |
| Запросы обработаны | Одинокий | Одинокий | Одинокий | Несколько |
| Максимальный размер запроса | Маленький | Середина | Большой | Большой |
| Время решения | Короткий | Длинный | Длинный | Длинный |
| Требуется облачное хранилище Google. | Нет | Нет | Да | Да |
Понимание характеристик конечной точки
В предыдущей таблице перечислены следующие характеристики, которые помогут вам выбрать подходящую конечную точку:
- Тип выполнения : определяет, как ваше приложение обрабатывает сетевое соединение в ожидании ответа. Существует два типа:
- Блокирующие конечные точки : Поддерживайте соединение открытым до тех пор, пока API не вернет ответ.
- Неблокирующие конечные точки : обрабатывают запросы в фоновом режиме. API немедленно возвращает идентификатор длительной операции (LRO) , который вы можете запросить позже для получения результатов.
- Обработанные запросы : Определяет, обрабатывает ли конечная точка один запрос маршрутизации или несколько запросов одновременно.
- Максимальный размер запроса : Небольшие и средние запросы отправляются непосредственно в потоке и имеют ограничения на стороне сервера. Большие запросы обходят эти ограничения, используя Google Cloud Storage. Точные ограничения на размер запроса можно найти в разделе с подробной информацией о конечных точках.
- Время решения : простые запросы могут быть решены за короткое время, в то время как сложные запросы требуют больше времени. Поскольку время решения определяет, как долго соединение должно оставаться открытым, выбор конечной точки зависит от ваших ограничений по времени ожидания. Для получения дополнительной информации см. раздел «Настройка тайм-аутов и крайних сроков» .
- Требуется Google Cloud Storage : конечные точки, обрабатывающие большие запросы и ответы, считывают и записывают данные непосредственно в Google Cloud Storage. Вместо отправки данных в HTTP-запросе вы загружаете свой запрос в корзину Cloud Storage и передаете URI в API.
Сведения о конечной точке
API оптимизации маршрутов имеет четыре конечные точки. В следующих разделах объясняется, как работает каждая конечная точка, и приводится пример запроса.
OptimizeTours
OptimizeTours — это блокирующая конечная точка , предназначенная для одиночных запросов с коротким временем решения. Она возвращает оптимизированный маршрут непосредственно в ответе. Поскольку это блокирующая конечная точка, необходимо поддерживать открытое сетевое соединение до тех пор, пока API не завершит обработку запроса, чтобы получить ответ. Эта конечная точка принимает встроенные запросы размером до примерно 4 МБ.
См. пример запроса 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). Вы можете опрашивать этот идентификатор с помощью конечной точки GetOperation , чтобы проверить статус запроса и получить окончательные оптимизированные маршруты. Эта конечная точка принимает встроенные запросы размером до примерно 8 МБ.
См. пример запроса OptimizeToursLongRunning
{ "model": { "shipments":[ { "pickups":[ { "arrivalLocation": { "latitude": 37.425062, "longitude": -122.095355 } } ] } ], "vehicles":[ { "travelMode": "DRIVING", "costPerKilometer": 1.0 } ] } }
OptimizeToursUri
OptimizeToursUri — это неблокирующая конечная точка , предназначенная для одиночных запросов с длительным временем решения и большими объемами данных (более 8 МБ). Она возвращает идентификатор длительной операции (LRO). Вы можете проверить статус запроса, используя конечную точку GetOperation , чтобы получить этот идентификатор.
Вместо отправки данных непосредственно в запрос, вы загружаете свой OptimizeToursRequest в Google Cloud Storage. Затем вы передаете URI Cloud Storage как для входного запроса, так и для выходного адреса в 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). Вы можете опрашивать этот идентификатор с помощью конечной точки GetOperation , чтобы проверить статус запроса и получить окончательные оптимизированные маршруты.
Вместо отправки данных непосредственно в API, вы загружаете несколько запросов OptimizeToursRequest в Google Cloud Storage. Затем вы передаете URI Cloud Storage в 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" } } ] }