RouteRequestRouteDirectionsBatch202Response interface
L'API Post Route Directions Batch
è una richiesta di POST
HTTP che invia batch di query all'API Get Route Directions usando una singola richiesta asincrona. È possibile chiamare Route Directions Batch
API per l'esecuzione asincrona (asincrona) o in modo sincrono (sincronizzazione). L'API asincrona consente al chiamante di eseguire il batch fino a 700 query e l'API di sincronizzazione fino a 100 query. Per chiamare l'API Post Route Directions Batch
in una richiesta sincrona, vedere Post Route Directions Batch Sync.
Inviare una richiesta batch asincrona
L'API asincrona è appropriata per l'elaborazione di grandi volumi di richieste di route relativamente complesse
- Consente il recupero dei risultati in una chiamata separata (sono possibili più download).
- L'API asincrona è ottimizzata per l'affidabilità e non dovrebbe verificarsi un timeout.
- Il numero di elementi batch è limitato a 700 per questa API.
Quando si effettua una richiesta usando una richiesta asincrona, per impostazione predefinita il servizio restituisce un codice di risposta 202 lungo un URL di reindirizzamento nel campo Percorso dell'intestazione della risposta. Questo URL deve essere controllato periodicamente fino a quando non sono disponibili i dati di risposta o le informazioni sull'errore. Le risposte asincrone vengono archiviate per 24 ore. L'URL di reindirizzamento restituisce una risposta 404 se usata dopo il periodo di scadenza.
Si noti che la richiesta batch asincrona è un'operazione a esecuzione prolungata. Ecco una sequenza tipica di operazioni:
- Il client invia una richiesta di route Directions Batch
POST
a Mappe di Azure.
POST https://atlas.microsoft.com/route/directions/batch/json?api-version=1.0&subscription-key={subscription-key}
Il server risponderà con uno dei seguenti elementi:
HTTP
202 Accepted
: la richiesta batch è stata accettata.HTTP
Error
: si è verificato un errore durante l'elaborazione della richiesta batch. Può trattarsi di un400 Bad Request
o di qualsiasi altro codice di statoError
.Se la richiesta batch è stata accettata correttamente, l'intestazione
Location
nella risposta contiene l'URL per scaricare i risultati della richiesta batch. Questo URI di stato è simile al seguente:
GET https://atlas.microsoft.com/route/directions/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}
- Il client invia una richiesta di
GET
nell'URL di download ottenuto nel passaggio 3 per scaricare i risultati del batch.
Corpo POST per la richiesta batch
Per inviare le indicazioni stradali query si userà una richiesta di POST
in cui il corpo della richiesta conterrà la matrice batchItems
in formato json
e l'intestazione Content-Type
verrà impostata su application/json
. Ecco un corpo di richiesta di esempio contenente 3 indicazioni stradali query:
{
"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" }
]
}
Una route directions query in un batch è solo un URL parziale senza il protocollo, l'URL di base, il percorso, la versione api e la chiave di sottoscrizione. Può accettare uno dei parametri URI
L'API asincrona consente al chiamante di eseguire il batch fino a 700 query e l'API di sincronizzazione fino a 100 query e il batch deve contenere almeno 1 query.
Scaricare i risultati batch asincroni
Per scaricare i risultati del batch asincrono, verrà inviata una richiesta di GET
all'endpoint di download batch. Questo 'URL di download può essere ottenuto dall'intestazione Location
di una richiesta batch di POST
riuscita e ha un aspetto simile al seguente:
https://atlas.microsoft.com/route/directions/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}
Ecco la sequenza tipica di operazioni per scaricare i risultati del batch:
Il client invia una richiesta di
GET
usando l'URL di download .Il server risponderà con uno dei seguenti elementi:
HTTP
202 Accepted
: la richiesta batch è stata accettata ma è ancora in corso di elaborazione. Riprovare in qualche tempo.Http
200 OK
: richiesta batch elaborata correttamente. Il corpo della risposta contiene tutti i risultati del batch.
Modello di risposta batch
Il contenuto dei dati restituito è simile per le richieste asincrone e di sincronizzazione. Quando si scaricano i risultati di una richiesta batch asincrona, se il batch ha terminato l'elaborazione, il corpo della risposta contiene la risposta batch. Questa risposta batch contiene un componente summary
che indica il totalRequests
che fanno parte della richiesta batch originale e successfulRequests
ad esempio le query eseguite correttamente. La risposta batch include anche una matrice di batchItems
che contiene una risposta per ogni query e ogni query nella richiesta batch. Il batchItems
conterrà i risultati nello stesso ordine in cui le query originali sono state inviate nella richiesta batch. Ogni elemento in batchItems
contiene campi statusCode
e response
. Ogni response
in batchItems
è di uno dei tipi seguenti:
RouteDirections
: se la query è stata completata correttamente.Error
: se la query non è riuscita. La risposta conterrà uncode
e unmessage
in questo caso.
Di seguito è riportato un esempio di risposta batch con 1 riuscito e 1 risultato non riuscito:
{
"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."
}
}
}
]
}
- Extends
Proprietà
headers | |
status |
Proprietà ereditate
body | Corpo analizzato |
request | Richiesta che ha generato questa risposta. |
Dettagli proprietà
headers
headers: RawHttpHeaders & RouteRequestRouteDirectionsBatch202Headers
Valore della proprietà
status
status: "202"
Valore della proprietà
"202"
Dettagli proprietà ereditate
body
Corpo analizzato
body: unknown
Valore della proprietà
unknown
ereditato da HttpResponse.body
request
Richiesta che ha generato questa risposta.
request: PipelineRequest
Valore della proprietà
Ereditato da HttpResponse.request
Azure SDK for JavaScript