Wybierz punkt końcowy

Route Optimization API ma te punkty końcowe:

  • OptimizeTours: punkt końcowy blokujący dla pojedynczych żądań.
  • OptimizeToursLongRunning: nieblokujący punkt końcowy dla pojedynczych żądań o długim czasie rozwiązywania.
  • OptimizeToursUri: nieblokujący punkt końcowy dla pojedynczych żądań z dużymi wymaganiami dotyczącymi danych.
  • BatchOptimizeTours: punkt końcowy nieblokujący, który przetwarza jednocześnie wiele żądań.

Wybrany punkt końcowy zależy od przypadku użycia, rozmiaru żądania, oczekiwanego czasu rozwiązania i tego, czy musisz przetwarzać wiele żądań jednocześnie.

Porównywanie punktów końcowych

W tabeli poniżej znajdziesz odpowiedni punkt końcowy:

Punkt końcowy OptimizeTours OptimizeToursLongRunning OptimizeToursUri BatchOptimizeTours
Typ wykonania Blokowanie Nieblokujące Nieblokujące Nieblokujące
Requests processed (Przetworzone żądania) Singiel Singiel Singiel Wiele
Maksymalny rozmiar żądania Mały średni, Duży Duży
Czas rozwiązania Krótkie Długi Długi Długi
Wymaga Google Cloud Storage Nie Nie Tak Tak

Poznaj charakterystykę punktu końcowego

W poprzedniej tabeli znajdziesz te charakterystyki, które pomogą Ci wybrać odpowiedni punkt końcowy:

  • Typ wykonania: określa, jak aplikacja obsługuje połączenie sieciowe podczas oczekiwania na odpowiedź. Dostępne są 2 rodzaje:
    • Blokowanie punktów końcowych: utrzymuj połączenie otwarte, dopóki interfejs API nie zwróci odpowiedzi.
    • Punkty końcowe nieblokujące: przetwarzanie żądań w tle. Interfejs API od razu zwraca identyfikator długo trwającej operacji, który możesz później sprawdzić, aby pobrać wyniki.
  • Przetworzone żądania: określa, czy punkt końcowy obsługuje pojedyncze żądanie routingu, czy przetwarza wiele żądań jednocześnie.
  • Maksymalny rozmiar żądania: małe i średnie żądania są wysyłane bezpośrednio w treści i mają limity po stronie serwera. Duże żądania omijają te limity, korzystając z Google Cloud Storage. Dokładne limity rozmiaru żądań znajdziesz w sekcjach ze szczegółami punktów końcowych.
  • Czas rozwiązania: proste prośby można rozwiązać w krótkim czasie, a rozwiązanie złożonych prośb zajmuje więcej czasu. Czas rozwiązania problemu określa, jak długo połączenie musi pozostać otwarte, dlatego wybór punktu końcowego zależy od limitów czasu. Więcej informacji znajdziesz w artykule Konfigurowanie limitów czasu i terminów.
  • Wymaga Google Cloud Storage: punkty końcowe, które przetwarzają duże żądania i odpowiedzi, odczytują i zapisują dane bezpośrednio w Google Cloud Storage. Zamiast wysyłać dane w żądaniu HTTP, przesyłasz żądanie do zasobnika Cloud Storage i przekazujesz identyfikator URI do interfejsu API.

Szczegóły punktu końcowego

Interfejs Route Optimization API ma 4 punkty końcowe. W sekcjach poniżej znajdziesz wyjaśnienie działania każdego punktu końcowego oraz przykładowe żądanie.

OptimizeTours

OptimizeTours to blokujący punkt końcowy przeznaczony do pojedynczych żądań o krótkim czasie rozwiązywania. Zwraca zoptymalizowaną trasę bezpośrednio w odpowiedzi. Jest to blokujący punkt końcowy, więc musisz utrzymywać otwarte połączenie sieciowe, dopóki interfejs API nie zakończy przetwarzania żądania i nie zwróci odpowiedzi. Ten punkt końcowy akceptuje żądania wbudowane o rozmiarze do około 4 MB.

Zobacz OptimizeToursprzykładowe żądanie

{
  "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 to nieblokujący punkt końcowy dla pojedynczych żądań o długim czasie rozwiązywania. Zwraca identyfikator długo trwającej operacji. Możesz odpytywać ten identyfikator za pomocą punktu końcowego GetOperation, aby sprawdzić stan żądania i pobrać ostateczne zoptymalizowane trasy. Ten punkt końcowy przyjmuje żądania wbudowane o rozmiarze do około 8 MB.

Zobacz OptimizeToursLongRunningprzykładowe żądanie

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

OptimizeToursUri

OptimizeToursUri to nieblokujący punkt końcowy przeznaczony do pojedynczych żądań o długim czasie rozwiązywania i dużych wymaganiach dotyczących danych (ponad 8 MB). Zwraca identyfikator długo trwającej operacji. Możesz odpytywać ten identyfikator za pomocą punktu końcowego GetOperation, aby sprawdzić stan prośby.

Zamiast wysyłać ładunek w treści żądania, przesyłasz OptimizeToursRequest do Google Cloud Storage. Następnie przekazujesz do interfejsu API identyfikatory URI Cloud Storage zarówno dla żądania wejściowego, jak i miejsca docelowego danych wyjściowych. Serwer odczytuje dane z wejściowego identyfikatora URI i zapisuje końcowy OptimizeToursResponse bezpośrednio w wyjściowym identyfikatorze URI. Po zakończeniu operacji możesz odczytać zoptymalizowane trasy z tego wyjściowego identyfikatora URI.

Zobacz OptimizeToursUriprzykładowe żądanie

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

BatchOptimizeTours

BatchOptimizeTours to nieblokujący punkt końcowy przeznaczony do wielu niezależnych żądań optymalizacji przetwarzanych jednocześnie. Zwraca identyfikator długo trwającej operacji. Możesz odpytywać ten identyfikator za pomocą punktu końcowego GetOperation, aby sprawdzić stan żądania i pobrać ostateczne zoptymalizowane trasy.

Zamiast wysyłać ładunek w treści żądania, możesz przesłać wiele plikówOptimizeToursRequest do Google Cloud Storage. Następnie przekazujesz interfejsowi API identyfikatory URI Cloud Storage. Serwer odczytuje dane z identyfikatorów URI wejścia i zapisuje OptimizeToursResponse dla każdego żądania bezpośrednio w identyfikatorach URI wyjścia.

Zobacz BatchOptimizeToursprzykładowe żądanie

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