Endpunkt auswählen

Die Route Optimization API hat die folgenden Endpunkte:

  • OptimizeTours: Ein blockierender Endpunkt für einzelne Anfragen.
  • OptimizeToursLongRunning: Ein nicht blockierender Endpunkt für einzelne Anfragen mit langen Lösungszeiten.
  • OptimizeToursUri: Ein nicht blockierender Endpunkt für einzelne Anfragen mit hohen Datenanforderungen.
  • BatchOptimizeTours: Ein nicht blockierender Endpunkt für mehrere gleichzeitig verarbeitete Anfragen.

Der von Ihnen gewählte Endpunkt hängt von Ihrem Anwendungsfall, der Anfragegröße, der erwarteten Lösungszeit und davon ab, ob Sie mehrere Anfragen gleichzeitig verarbeiten müssen.

Endpunkte vergleichen

In der folgenden Tabelle finden Sie den richtigen Endpunkt für Ihre Anforderungen:

Endpunkt OptimizeTours OptimizeToursLongRunning OptimizeToursUri BatchOptimizeTours
Ausführungstyp Blockierungen Nicht blockierend Nicht blockierend Nicht blockierend
Verarbeitete Anfragen Single Single Single Mehrere
Maximale Anfragegröße Klein Mittel Groß Groß
Zeit bis zur Problemlösung Kurz Lang Long Lang
Google Cloud Storage erforderlich Nein Nein Ja Ja

Endpunktmerkmale verstehen

In der vorherigen Tabelle sind die folgenden Merkmale aufgeführt, die Ihnen bei der Auswahl des richtigen Endpunkts helfen:

  • Ausführungstyp: Bestimmt, wie Ihre Anwendung die Netzwerkverbindung verarbeitet, während sie auf eine Antwort wartet. Es gibt zwei Arten:
    • Blockierende Endpunkte: Die Verbindung bleibt geöffnet, bis die API eine Antwort zurückgibt.
    • Nicht blockierende Endpunkte: Verarbeiten Anfragen im Hintergrund. Die API gibt sofort die ID eines Vorgangs mit langer Ausführungszeit zurück, die Sie später abfragen können, um Ergebnisse abzurufen.
  • Verarbeitete Anfragen: Bestimmt, ob der Endpunkt eine einzelne Routinganfrage verarbeitet oder mehrere Anfragen gleichzeitig verarbeitet.
  • Maximale Anfragegröße: Kleine und mittlere Anfragen werden direkt inline gesendet und unterliegen serverseitigen Limits. Große Anfragen umgehen diese Limits, indem sie Google Cloud Storage verwenden. Die genauen Größenbeschränkungen für Anfragen finden Sie in den Abschnitten mit den Endpunktdetails.
  • Lösungszeit: Einfache Anfragen können in kurzer Zeit gelöst werden, während komplexe Anfragen länger dauern. Da die Lösungszeit bestimmt, wie lange eine Verbindung geöffnet bleiben muss, hängt die Wahl des Endpunkts von Ihren Zeitlimits ab. Weitere Informationen finden Sie unter Zeitlimits und Fristen konfigurieren.
  • Google Cloud Storage erforderlich: Endpunkte, die große Anfragen und Antworten verarbeiten, lesen und schreiben Daten direkt in Google Cloud Storage. Anstatt die Daten in der HTTP-Anfrage zu senden, laden Sie Ihre Anfrage in einen Cloud Storage-Bucket hoch und übergeben den URI an die API.

Endpunktdetails

Die Route Optimization API hat vier Endpunkte. In den folgenden Abschnitten wird die Funktionsweise der einzelnen Endpunkte erläutert und eine Beispielanfrage gezeigt.

OptimizeTours

OptimizeTours ist ein blockierender Endpunkt, der für einzelne Anfragen mit kurzen Lösungszeiten vorgesehen ist. Sie gibt eine optimierte Route direkt in der Antwort zurück. Da es sich um einen blockierenden Endpunkt handelt, müssen Sie Ihre Netzwerkverbindung offen halten, bis die API die Verarbeitung der Anfrage abgeschlossen hat und eine Antwort zurückgibt. Dieser Endpunkt akzeptiert Inline-Anfragen bis zu einer Größe von etwa 4 MB.

OptimizeTours-Beispielanfrage ansehen

{
  "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 ist ein nicht blockierender Endpunkt für einzelne Anfragen mit langen Lösungszeiten. Es wird die ID eines Vorgangs mit langer Ausführungszeit zurückgegeben. Sie können diese ID über den Endpunkt GetOperation abfragen, um den Status der Anfrage zu prüfen und die endgültigen optimierten Routen abzurufen. Dieser Endpunkt akzeptiert Inline-Anfragen bis zu einer Größe von etwa 8 MB.

OptimizeToursLongRunning-Beispielanfrage ansehen

{
  "model": {
    "shipments":[
      {
        "pickups":[
          {
            "arrivalLocation": {
              "latitude": 37.425062,
              "longitude": -122.095355
            }
          }
        ]
      }
    ],
    "vehicles":[
      {
        "travelMode": "DRIVING",
        "costPerKilometer": 1.0
      }
    ]
  }
}
    

OptimizeToursUri

OptimizeToursUri ist ein nicht blockierender Endpunkt, der für einzelne Anfragen mit langen Lösungszeiten und großen Datenanforderungen (über 8 MB) vorgesehen ist. Es wird eine ID für einen Vorgang mit langer Ausführungszeit zurückgegeben. Sie können diese ID über den Endpunkt GetOperation abfragen, um den Status der Anfrage zu prüfen.

Anstatt die Nutzlast inline zu senden, laden Sie die OptimizeToursRequest in Google Cloud Storage hoch. Anschließend übergeben Sie die Cloud Storage-URIs für Ihre Eingabeanfrage und Ihr Ausgabeziel an die API. Der Server liest die Daten aus Ihrem Eingabe-URI und schreibt die endgültige OptimizeToursResponse direkt in Ihren Ausgabe-URI. Sie können die optimierten Routen aus diesem Ausgabe-URI lesen, sobald der Vorgang abgeschlossen ist.

OptimizeToursUri-Beispielanfrage ansehen

{
  "input": {
    "uri": "gs://your-bucket/path/input/object.json"
  },
  "output": {
    "uri": "gs://your-bucket/path/output/object.json"
  }
}
    

BatchOptimizeTours

BatchOptimizeTours ist ein nicht blockierender Endpunkt, der für mehrere unabhängige Optimierungsanfragen gedacht ist, die gleichzeitig verarbeitet werden. Es wird eine ID für einen Vorgang mit langer Ausführungszeit zurückgegeben. Sie können diese ID über den Endpunkt GetOperation abfragen, um den Status der Anfrage zu prüfen und die endgültigen optimierten Routen abzurufen.

Anstatt die Nutzlast inline zu senden, laden Sie mehrere OptimizeToursRequest in Google Cloud Storage hoch. Anschließend übergeben Sie die Cloud Storage-URIs an die API. Der Server liest die Daten aus Ihren Eingabe-URIs und schreibt für jede Anfrage einen OptimizeToursResponse direkt in Ihre Ausgabe-URIs.

Beispiel für eine BatchOptimizeTours-Anfrage ansehen

{
  "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"
      }
    }
  ]
}