Единые методы API неблокирующей оптимизации

В этом руководстве представлен экспериментальный запуск методов API OptimizeToursLongRunning и OptimizeToursUri , которые позволяют пользователям делать отдельные неблокирующие запросы оптимизации. В неблокирующей оптимизации пользователь быстро получает прототип операции из метода, который может использоваться для ссылки на статус оптимизации путем вызова GetOperation . Подробнее см. в разделе Длительные операции .

Эти неблокирующие методы обеспечивают преимущества надежности по сравнению с блокирующим методом OptimizeTours , поскольку клиенту не нужно поддерживать соединение с сервером во время выполнения оптимизации. Кроме того, эти новые методы облегчают отладку сбоев по сравнению с BatchOptimizeTours , поскольку каждая оптимизация связана с одной длительной операцией (LRO).

Пользователи, которые предпочитают встраивать запрос на оптимизацию, могут использовать метод OptimizeToursLongRunning , а пользователи, которые предпочитают загружать запросы и считывать ответы с помощью Google Cloud Storage, могут использовать метод OptimizeToursUri .

ОптимизироватьТурыДлительные

Пример: сделайте запрос OptimizeToursLongRunning

Перед созданием запроса замените следующие параметры на значения, соответствующие вашей среде:

  • Убедитесь, что у вас настроены учетные данные приложения по умолчанию , как описано в разделе Использование OAuth .
  • Установите PROJECT_NUMBER_OR_ID на номер или идентификатор вашего облачного проекта.

    Следующая команда отправляет запрос OptimizeToursLongRunning в Route Optimization API и получает связанный с ним идентификатор операции. Метод GetOperation можно использовать для запроса статуса операции. После завершения операции метаданные также содержат окончательный OptimizeToursResponse .

    curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeToursLongRunning' \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    --data @- <<EOM
    {
      "model": {
        "shipments": [
          {
            "pickups": [
              {
                "arrivalLocation": {
                  "latitude": 37.42506261000996,
                  "longitude": -122.09535511930135
                }
              }
            ],
            "deliveries": [
              {
                "arrivalLocation": {
                  "latitude": 37.42421503206021,
                  "longitude": -122.09526063135228
                }
              }
            ]
          }
        ],
        "vehicles": [
          {
            "travelMode": "DRIVING",
            "costPerKilometer": 1.0
          }
        ],
      }
    }
    EOM

ОптимизироватьToursUri

Как и BatchOptimizeTours , вы можете использовать OptimizeToursUri для продолжения хранения вашего запроса и ответа на оптимизацию в Google Cloud Storage. URI облачного хранилища должны быть указаны в сообщении запроса OptimizeToursUri . Возвращаемый статус Operation связан только с одним отправленным OptimizeToursRequest .

Пример: сделайте запрос OptimizeToursUri

Перед созданием запроса замените следующие параметры на значения, соответствующие вашей среде:

  • Убедитесь, что у вас настроены учетные данные приложения по умолчанию , как описано в разделе Использование OAuth .
  • Установите PROJECT_NUMBER_OR_ID на номер или идентификатор вашего облачного проекта.

    Следующая команда отправляет запрос OptimizeToursUri в Route Optimization API и получает связанный с ним идентификатор операции. Используйте метод GetOperation для запроса статуса операции. После завершения операции OptimizeToursResponse сохраняется удаленно по выходному пути URI, указанному в запросе.

    curl -X POST 'https://routeoptimization.googleapis.com/v1/projects/PROJECT_NUMBER_OR_ID:optimizeToursUri' \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer $(gcloud auth application-default print-access-token)" \
    --data @- <<EOM
    {
      "input": {
        "uri": "gs://bucket/path/input/object.json"
      },
      "output": {
        "uri": "gs://bucket/path/output/object.json"
      }
    }
    EOM