Freigeben über


RouteRequestRouteDirectionsBatch200Response 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:

  1. 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}
  1. Der Server antwortet mit einer der folgenden Aktionen:

    HTTP-202 Accepted – Batchanforderung wurde akzeptiert.

    HTTP-Error – Fehler beim Verarbeiten der Batchanforderung. Dies kann entweder ein 400 Bad Request oder ein anderer Error Statuscode sein.

  2. 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}
  1. 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/jsonfestgelegt. 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:

  1. Client sendet eine GET Anforderung mithilfe der Download-URL.

  2. 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 successfulRequestsd. 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 eine code und eine message.

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

body
status

Geerbte Eigenschaften

headers

Die HTTP-Antwortheader.

request

Die Anforderung, die diese Antwort generiert hat.

Details zur Eigenschaft

body

body: RouteDirectionsBatchResultOutput

Eigenschaftswert

status

status: "200"

Eigenschaftswert

"200"

Geerbte Eigenschaftsdetails

headers

Die HTTP-Antwortheader.

headers: RawHttpHeaders

Eigenschaftswert

geerbt von HttpResponse.headers

request

Die Anforderung, die diese Antwort generiert hat.

request: PipelineRequest

Eigenschaftswert

geerbt von HttpResponse.request