RouteRequestRouteDirectionsBatch202Response interface
Die Post Route Directions Batch
-API ist eine HTTP-POST
-Anforderung, die Batches von Abfragen mithilfe einer einzigen asynchronen Anforderung an die Get Route Directions-API sendet. Sie können Route Directions Batch
-API aufrufen, um entweder asynchron (asynchron) oder synchron (Synchronisierung) auszuführen. Mit der asynchronen API können Aufrufer bis zu 700 Abfragen und Synchronisierungs-API bis zu 100 Abfragen stapeln. Informationen zum Aufrufen der Post Route Directions Batch
-API in einer synchronen Anforderung finden Sie unter Batchsynchronisierung nach Route batch sync.
Asynchrone Batchanforderung übermitteln
Die asynchrone API eignet sich für die Verarbeitung großer Mengen relativ komplexer Routenanforderungen.
- Es ermöglicht das Abrufen von Ergebnissen in einem separaten Anruf (mehrere Downloads sind möglich).
- Die asynchrone API ist für Zuverlässigkeit optimiert und wird nicht erwartet, dass ein Timeout eintritt.
- Die Anzahl der Batchelemente ist auf 700 für diese API beschränkt.
Wenn Sie eine Anforderung mithilfe einer asynchronen Anforderung vornehmen, gibt der Dienst standardmäßig einen Antwortcode 202 entlang einer Umleitungs-URL im Feld "Speicherort" des Antwortheaders zurück. Diese URL sollte regelmäßig überprüft werden, bis die Antwortdaten oder Fehlerinformationen verfügbar sind. Die asynchronen Antworten werden für 24 Stunden gespeichert. Die Umleitungs-URL gibt eine 404-Antwort zurück, wenn sie nach dem Ablaufzeitraum verwendet wird.
Beachten Sie, dass die asynchrone Batchanforderung ein lang ausgeführter Vorgang ist. Hier ist eine typische Abfolge von Vorgängen:
- Der Client sendet einen Routenbeschreibungsbatch
POST
Anforderung an Azure Maps.
POST https://atlas.microsoft.com/route/directions/batch/json?api-version=1.0&subscription-key={subscription-key}
Der Server antwortet mit einer der folgenden Aktionen:
HTTP-
202 Accepted
– Batchanforderung wurde akzeptiert.HTTP-
Error
– Fehler beim Verarbeiten der Batchanforderung. Dies kann entweder ein400 Bad Request
oder ein andererError
Statuscode sein.Wenn die Batchanforderung erfolgreich akzeptiert wurde, enthält der
Location
-Header in der Antwort die URL zum Herunterladen der Ergebnisse der Batchanforderung. Dieser Status-URI sieht wie folgt aus:
GET https://atlas.microsoft.com/route/directions/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}
- Der Client gibt eine
GET
Anforderung auf die Download-URL aus, in Schritt 3 abgerufen wurde, um die Batchergebnisse herunterzuladen.
POST-Text für Batchanforderung
Um die Routenbeschreibungen Abfragen zu senden, verwenden Sie eine POST
Anforderung, in der der Anforderungstext das batchItems
Array im json
Format enthält, und der Content-Type
Header wird auf application/json
festgelegt. Hier sehen Sie einen Beispielanforderungstext mit 3 Routenbeschreibungen Abfragen:
{
"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" }
]
}
Eine Routenbeschreibung Abfrage in einem Batch ist nur eine partielle URL ohne Protokoll, Basis-URL, Pfad, API-Version und Abonnementschlüssel. Sie kann jede der unterstützten RoutenbeschreibungenURI-Parameterakzeptieren. Die Zeichenfolgenwerte in der Routenbeschreibung Abfrage müssen ordnungsgemäß escaped sein (z. B. " Zeichen sollte mit \ ) escapet werden, und sie sollte auch ordnungsgemäß URL-codiert sein.
Mit der asynchronen API können Aufrufer bis zu 700 Abfragen und Synchronisierungs-API bis zu 100 Abfragen stapeln, und der Batch sollte mindestens 1 Abfrage enthalten.
Asynchrone Batchergebnisse herunterladen
Um die asynchronen Batchergebnisse herunterzuladen, geben Sie eine GET
Anforderung an den Batchdownloadendpunkt aus. Diese Download-URL kann aus dem Location
Header einer erfolgreichen POST
Batchanforderung abgerufen werden und sieht wie folgt aus:
https://atlas.microsoft.com/route/directions/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}
Dies ist die typische Abfolge von Vorgängen zum Herunterladen der Batchergebnisse:
Client sendet eine
GET
Anforderung mithilfe der Download-URL.Der Server antwortet mit einer der folgenden Aktionen:
HTTP-
202 Accepted
– Batchanforderung wurde akzeptiert, wird aber noch verarbeitet. Versuchen Sie es bitte in irgendeiner Zeit erneut.HTTP-
200 OK
– Batchanforderung erfolgreich verarbeitet. Der Antworttext enthält alle Batchergebnisse.
Batchantwortmodell
Der zurückgegebene Dateninhalt ist für asynchrone und Synchronisierungsanforderungen ähnlich. Wenn der Batch die Verarbeitung abgeschlossen hat, enthält der Antworttext beim Herunterladen der Ergebnisse einer asynchronen Batchanforderung die Batchantwort. Diese Batchantwort enthält eine summary
Komponente, die die totalRequests
angibt, die Teil der ursprünglichen Batchanforderung waren, und successfulRequests
d. h. Abfragen, die erfolgreich ausgeführt wurden. Die Batchantwort enthält auch ein batchItems
Array, das eine Antwort für jede und jede Abfrage in der Batchanforderung enthält. Die batchItems
enthält die Ergebnisse in der genauen Reihenfolge, in der die ursprünglichen Abfragen in der Batchanforderung gesendet wurden. Jedes Element in batchItems
enthält statusCode
- und response
Felder. Jede response
in batchItems
weist einen der folgenden Typen auf:
RouteDirections
– Wenn die Abfrage erfolgreich abgeschlossen wurde.Error
– Wenn die Abfrage fehlgeschlagen ist. Die Antwort enthält in diesem Fall einecode
und einemessage
.
Hier ist eine Beispielbatchantwort mit 1 erfolgreichen und 1 Ergebnis fehlgeschlagen:
{
"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
Eigenschaften
headers | |
status |
Geerbte Eigenschaften
body | Analysierter Textkörper |
request | Die Anforderung, die diese Antwort generiert hat. |
Details zur Eigenschaft
headers
headers: RawHttpHeaders & RouteRequestRouteDirectionsBatch202Headers
Eigenschaftswert
status
status: "202"
Eigenschaftswert
"202"
Geerbte Eigenschaftsdetails
body
Analysierter Textkörper
body: unknown
Eigenschaftswert
unknown
geerbt von HttpResponse.body
request
Die Anforderung, die diese Antwort generiert hat.
request: PipelineRequest
Eigenschaftswert
geerbt von HttpResponse.request
Azure SDK for JavaScript