Wybierz punkt końcowy

Route Optimization API ma te punkty końcowe:

  • OptimizeTours: blokujący punkt końcowy dla pojedynczych żądań.
  • OptimizeToursLongRunning: nieblokujący punkt końcowy dla pojedynczych żądań z długim czasem rozwiązywania.
  • OptimizeToursUri: nieblokujący punkt końcowy dla pojedynczych żądań o dużych wymaganiach dotyczących danych.
  • BatchOptimizeTours: nieblokujący punkt końcowy dla wielu żądań przetwarzanych jednocześnie.

Wybór punktu końcowego 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
Przetworzone żądania Singiel Singiel Singiel Wiele
Maksymalny rozmiar żądania Mały średni, Duży Duży
Czas rozwiązywania 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 cechy, które pomogą Ci wybrać odpowiedni punkt końcowy:

  • Typ wykonywania: określa, jak aplikacja obsługuje połączenie sieciowe podczas oczekiwania na odpowiedź. Dostępne są 2 typy:
    • Blokowanie punktów końcowych: połączenie pozostaje otwarte, dopóki interfejs API nie zwróci odpowiedzi.
    • Punkty końcowe bez blokowania: przetwarzają żądania w tle. Interfejs API natychmiast zwraca identyfikator długo trwającej operacji (LRO), który możesz później odpytać, aby uzyskać 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 tekście i mają limity po stronie serwera. Duże żądania omijają te limity, korzystając z Google Cloud Storage. Dokładne limity rozmiaru żądania znajdziesz w sekcjach ze szczegółami punktów końcowych.
  • Czas rozwiązania: proste prośby można rozwiązać w krótkim czasie, natomiast złożone prośby wymagają więcej czasu. Czas rozwiązywania określa, jak długo połączenie musi pozostać otwarte, więc wybór punktu końcowego zależy od limitów czasu oczekiwania. Więcej informacji znajdziesz w artykule o konfigurowaniu 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

Route Optimization API ma 4 punkty końcowe. W sekcjach poniżej wyjaśniamy, jak działa każdy punkt końcowy, i podajemy przykładowe żądanie.

OptimizeTours

OptimizeTours to blokujący punkt końcowy przeznaczony do pojedynczych żądań z krótkim czasem rozwiązywania. Zwraca zoptymalizowaną trasę bezpośrednio w odpowiedzi. Ponieważ jest to blokujący punkt końcowy, musisz utrzymywać połączenie sieciowe otwarte, 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 przykładowe żądanie 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 to nieblokujący punkt końcowy dla pojedynczych żądań z długim czasem rozwiązywania. Zwraca identyfikator długo trwającej operacji (LRO). Możesz odpytywać ten identyfikator za pomocą punktu końcowego GetOperation, aby sprawdzić stan żądania i pobrać ostateczne zoptymalizowane trasy. Ten punkt końcowy akceptuje żądania wbudowane o rozmiarze do około 8 MB.

Zobacz przykładowe żądanie OptimizeToursLongRunning

{
  "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 (LRO). Możesz sprawdzić stan żądania, odpytując ten identyfikator za pomocą punktu końcowego GetOperation.

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

Zobacz przykładowe żądanie OptimizeToursUri

{
  "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 (LRO). Możesz odpytywać ten identyfikator za pomocą punktu końcowego GetOperation, aby sprawdzać stan żądania i pobierać ostateczne zoptymalizowane trasy.

Zamiast wysyłać ładunek w tekście, przesyłasz wiele plików OptimizeToursRequest do Google Cloud Storage. Następnie przekazujesz identyfikatory URI Cloud Storage do interfejsu API. Serwer odczytuje dane z wejściowych identyfikatorów URI i zapisuje OptimizeToursResponse dla każdego żądania bezpośrednio w wyjściowych identyfikatorach URI.

Zobacz przykładowe żądanie 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"
      }
    }
  ]
}