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:
- 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}
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 stanuError
.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}
- 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:
Klient wysyła żądanie
GET
przy użyciu adresu URL pobierania .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 successfulRequests
tj. 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
imessage
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
Azure SDK for JavaScript