Udostępnij za pośrednictwem


RouteRequestRouteDirectionsBatch202Response interface

Interfejs API Post Route Directions Batch to żądanie POST HTTP, które wysyła partie zapytań do interfejsu API Get Route Directions przy użyciu pojedynczego żądania asynchronicznego. Możesz wywołać interfejs API Route Directions Batch, aby uruchomić asynchronicznie (asynchronicznie) lub synchronicznie (synchronizacja). Asynchroniczny interfejs API umożliwia wywołaniu wsadowe do 700 zapytań i synchronizowanie interfejsu API do 100 zapytań. Aby wywołać interfejs API Post Route Directions Batch w żądaniu synchronicznym, zobacz Post Route Directions Batch Sync.

Przesyłanie asynchronicznego żądania usługi Batch

Interfejs API asynchroniczny jest odpowiedni do przetwarzania dużych ilości stosunkowo złożonych żądań tras

  • Umożliwia pobieranie wyników w osobnym wywołaniu (możliwe jest wiele pobrań).
  • Asynchroniczny interfejs API jest zoptymalizowany pod kątem niezawodności i nie oczekuje się, że upłynął limit czasu.
  • Liczba elementów wsadowych jest ograniczona do 700 dla tego interfejsu API.

Gdy wysyłasz żądanie przy użyciu żądania asynchronicznego, domyślnie usługa zwraca kod odpowiedzi 202 wraz z adresem URL przekierowania w polu Lokalizacja nagłówka odpowiedzi. Ten adres URL powinien być okresowo sprawdzany do momentu udostępnienia danych odpowiedzi lub informacji o błędzie. Odpowiedzi asynchroniczne są przechowywane przez 24 godzin. Adres URL przekierowania zwraca odpowiedź 404, jeśli jest używana po upływie okresu wygaśnięcia.

Należy pamiętać, że asynchroniczne żądanie wsadowe jest długotrwałą operacją. Oto typowa sekwencja operacji:

  1. Klient wysyła żądanie usługi Batch Directions Routes POST do usługi Azure Maps.
POST https://atlas.microsoft.com/route/directions/batch/json?api-version=1.0&subscription-key={subscription-key}
  1. Serwer odpowie jednym z następujących elementów:

    202 Accepted HTTP — żądanie usługi Batch zostało zaakceptowane.

    Error HTTP — wystąpił błąd podczas przetwarzania żądania usługi Batch. Może to być 400 Bad Request lub inny kod stanu Error.

  2. Jeśli żądanie wsadowe zostało pomyślnie zaakceptowane, nagłówek Location w odpowiedzi zawiera adres URL umożliwiający pobranie wyników żądania wsadowego. Ten identyfikator URI stanu wygląda następująco:

GET https://atlas.microsoft.com/route/directions/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}
  1. Klient wysyła żądanie GET na adres URL pobierania uzyskany w kroku 3 w celu pobrania wyników wsadowych.

Treść POST dla żądania wsadowego

Aby wysłać wskazówki tras zapytania, użyjesz żądania POST, w którym treść żądania będzie zawierać tablicę batchItems w formacie json, a nagłówek Content-Type zostanie ustawiony na wartość application/json. Oto przykładowa treść żądania zawierająca 3 wskazówki dotyczące tras zapytań:

{
    "batchItems": [
        { "query": "?query=47.620659,-122.348934:47.610101,-122.342015&travelMode=bicycle&routeType=eco&traffic=false" },
        { "query": "?query=40.759856,-73.985108:40.771136,-73.973506&travelMode=pedestrian&routeType=shortest" },
        { "query": "?query=48.923159,-122.557362:32.621279,-116.840362" }
    ]
}

Wskazówki kierowania zapytania w partii to tylko częściowy adres URL bez protokołu, podstawowego adresu URL, ścieżki, wersji interfejsu API i klucza subskrypcji. Może zaakceptować dowolny z obsługiwanych wskazówek trasparametrów identyfikatora URI. Wartości ciągów w kierunkach trasy kwerendy muszą być prawidłowo uniknięte (np. "znak powinien zostać uniknięta znakiem \ ), a także powinien być prawidłowo zakodowany pod adresem URL.

Asynchroniczny interfejs API umożliwia obiektowi wywołującym wykonywanie partii do 700 zapytań i synchronizowanie interfejsu API do 100 zapytań, a partia powinna zawierać co najmniej 1 zapytania.

Pobieranie wyników asynchronicznych wsadowych

Aby pobrać wyniki asynchronicznego pobierania wsadowego, należy wysłać żądanie GET do punktu końcowego pobierania wsadowego. Ten pobierania adresu URL można uzyskać z nagłówka Location pomyślnego żądania wsadowego POST i wygląda następująco:

https://atlas.microsoft.com/route/directions/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}

Oto typowa sekwencja operacji pobierania wyników wsadowych:

  1. Klient wysyła żądanie GET przy użyciu adresu URL pobierania .

  2. Serwer odpowie jednym z następujących elementów:

    202 Accepted HTTP — żądanie usługi Batch zostało zaakceptowane, ale nadal jest przetwarzane. Spróbuj ponownie za jakiś czas.

    200 OK HTTP — pomyślnie przetworzone żądanie usługi Batch. Treść odpowiedzi zawiera wszystkie wyniki wsadowe.

Model odpowiedzi wsadowej

Zwrócona zawartość danych jest podobna dla żądań asynchronicznych i synchronizacji. Podczas pobierania wyników asynchronicznego żądania wsadowego, jeśli partia zakończyła przetwarzanie, treść odpowiedzi zawiera odpowiedź wsadową. Ta odpowiedź wsadowa zawiera składnik summary wskazujący totalRequests, które były częścią oryginalnego żądania wsadowego i successfulRequeststj. zapytania, które zostały wykonane pomyślnie. Odpowiedź wsadowa zawiera również tablicę batchItems zawierającą odpowiedź dla każdego zapytania w żądaniu wsadowym. batchItems będzie zawierać wyniki w dokładnie takiej samej kolejności, w jaki oryginalne zapytania zostały wysłane w żądaniu wsadowym. Każdy element w batchItems zawiera pola statusCode i response. Każdy response w batchItems jest jednym z następujących typów:

  • RouteDirections — jeśli zapytanie zostało ukończone pomyślnie.

  • Error — jeśli zapytanie nie powiodło się. Odpowiedź będzie zawierać code i message w tym przypadku.

Oto przykładowa odpowiedź wsadowa z wynikiem 1 i 1 zakończyła się niepowodzeniem:

{
    "summary": {
        "successfulRequests": 1,
        "totalRequests": 2
    },
    "batchItems": [
        {
            "statusCode": 200,
            "response": {
                "routes": [
                    {
                        "summary": {
                            "lengthInMeters": 1758,
                            "travelTimeInSeconds": 387,
                            "trafficDelayInSeconds": 0,
                            "departureTime": "2018-07-17T00:49:56+00:00",
                            "arrivalTime": "2018-07-17T00:56:22+00:00"
                        },
                        "legs": [
                            {
                                "summary": {
                                    "lengthInMeters": 1758,
                                    "travelTimeInSeconds": 387,
                                    "trafficDelayInSeconds": 0,
                                    "departureTime": "2018-07-17T00:49:56+00:00",
                                    "arrivalTime": "2018-07-17T00:56:22+00:00"
                                },
                                "points": [
                                    {
                                        "latitude": 47.62094,
                                        "longitude": -122.34892
                                    },
                                    {
                                        "latitude": 47.62094,
                                        "longitude": -122.3485
                                    },
                                    {
                                        "latitude": 47.62095,
                                        "longitude": -122.3476
                                    }
                                ]
                            }
                        ],
                        "sections": [
                            {
                                "startPointIndex": 0,
                                "endPointIndex": 40,
                                "sectionType": "TRAVEL_MODE",
                                "travelMode": "bicycle"
                            }
                        ]
                    }
                ]
            }
        },
        {
            "statusCode": 400,
            "response":
            {
                "error":
                {
                    "code": "400 BadRequest",
                    "message": "Bad request: one or more parameters were incorrectly specified or are mutually exclusive."
                }
            }
        }
    ]
}
Rozszerzenie

Właściwości

headers
status

Właściwości dziedziczone

body

Przeanalizowana treść

request

Żądanie, które wygenerowało tę odpowiedź.

Szczegóły właściwości

headers

headers: RawHttpHeaders & RouteRequestRouteDirectionsBatch202Headers

Wartość właściwości

status

status: "202"

Wartość właściwości

"202"

Szczegóły właściwości dziedziczonej

body

Przeanalizowana treść

body: unknown

Wartość właściwości

unknown

dziedziczone z HttpResponse.body

request

Żądanie, które wygenerowało tę odpowiedź.

request: PipelineRequest

Wartość właściwości

dziedziczone z HttpResponse.request