Dela via


RouteRequestRouteDirectionsBatch202Response interface

Post Route Directions Batch-API:et är en HTTP-POST begäran som skickar batchar med frågor till Get Route Directions API med hjälp av en enda asynkron begäran. Du kan anropa Route Directions Batch API för att köra antingen asynkront (asynkront) eller synkront (synkronisering). Med asynkront API kan anroparen batcha upp till 700 frågor och synkronisera API:et upp till 100 frågor. Om du vill anropa Post Route Directions Batch-API:et i en synkron begäran kan du läsa Batch-synkronisering efter vägbeskrivningar.

Skicka asynkron Batch-begäran

Asynkront API är lämpligt för bearbetning av stora volymer av relativt komplexa routningsbegäranden

  • Det gör det möjligt att hämta resultat i ett separat anrop (flera nedladdningar är möjliga).
  • Det asynkrona API:et är optimerat för tillförlitlighet och förväntas inte överskrida tidsgränsen.
  • Antalet batchobjekt är begränsat till 700 för det här API:et.

När du gör en begäran med hjälp av en asynkron begäran returnerar tjänsten som standard en 202-svarskod längs en omdirigerings-URL i fältet Plats i svarshuvudet. Den här URL:en bör kontrolleras regelbundet tills svarsdata eller felinformation är tillgänglig. Asynkrona svar lagras i 24 timmar. Omdirigerings-URL:en returnerar ett 404-svar om det används efter förfalloperioden.

Observera att en asynkron batchbegäran är en tidskrävande åtgärd. Här är en typisk sekvens med åtgärder:

  1. Klienten skickar en Route Directions Batch-POST begäran till Azure Maps.
POST https://atlas.microsoft.com/route/directions/batch/json?api-version=1.0&subscription-key={subscription-key}
  1. Servern svarar med något av följande:

    HTTP-202 Accepted – Batch-begäran har godkänts.

    HTTP-Error – Det uppstod ett fel vid bearbetning av Batch-begäran. Detta kan antingen vara en 400 Bad Request eller någon annan Error statuskod.

  2. Om batchbegäran godkändes innehåller Location-huvudet i svaret URL:en för att ladda ned resultatet av batchbegäran. Den här status-URI:n ser ut så här:

GET https://atlas.microsoft.com/route/directions/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}
  1. Klienten utfärdar en GET begäran om nedladdnings-URL hämtas i steg 3 för att ladda ned batchresultatet.

POST-brödtext för Batch-begäran

Om du vill skicka vägbeskrivningar frågor använder du en POST begäran där begärandetexten innehåller batchItems matrisen i json format och Content-Type-huvudet anges till application/json. Här är ett exempel på begärandetext som innehåller 3 vägbeskrivningar frågor:

{
    "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" }
    ]
}

En vägbeskrivningar fråga i en batch är bara en partiell URL-utan protokollet, bas-URL:en, sökvägen, api-versionen och prenumerationsnyckeln. Den kan acceptera någon av de vägbeskrivningar som stödsURI-parametrar. Strängvärdena i vägbeskrivningar frågan måste vara korrekt undantagna (t.ex. " tecknet ska vara undantaget med \ ) och det bör också vara korrekt URL-kodat.

Med api:et async kan anroparen batcha upp till 700 frågor och synkronisera API:et upp till 100 frågor, och batchen bör innehålla minst 1 fråga.

Ladda ned asynkrona Batch-resultat

Om du vill ladda ned asynkrona batchresultat utfärdar du en GET begäran till batchnedladdningsslutpunkten. Den här nedladdnings-URL:en kan hämtas från Location-huvudet för en lyckad POST batchbegäran och ser ut så här:

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

Här är den typiska sekvensen med åtgärder för att ladda ned batchresultatet:

  1. Klienten skickar en GET begäran med hjälp av nedladdnings-URL:en.

  2. Servern svarar med något av följande:

    HTTP-202 Accepted – Batch-begäran godkändes men bearbetas fortfarande. Försök igen om en stund.

    HTTP-200 OK – Batch-begäran har bearbetats. Svarstexten innehåller alla batchresultat.

Batch-svarsmodell

Det returnerade datainnehållet liknar asynkroniserings- och synkroniseringsbegäranden. När du laddar ned resultatet av en asynkron batchbegäran innehåller svarstexten batchsvaret om batchen har slutfört bearbetningen. Det här batchsvaret innehåller en summary komponent som anger totalRequests som ingick i den ursprungliga batchbegäran och successfulRequestsdvs. frågor som har körts korrekt. Batch-svaret innehåller också en batchItems matris som innehåller ett svar för varje fråga i batchbegäran. batchItems innehåller resultatet i exakt samma ordning som de ursprungliga frågorna skickades i batchbegäran. Varje objekt i batchItems innehåller statusCode och response fält. Varje response i batchItems är av någon av följande typer:

  • RouteDirections – Om frågan har slutförts.

  • Error – om frågan misslyckades. Svaret innehåller en code och en message i det här fallet.

Här är ett exempel på batchsvar med 1 lyckade och 1 misslyckades resultat:

{
    "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

Egenskaper

headers
status

Ärvda egenskaper

body

Parsad brödtext

request

Begäran som genererade det här svaret.

Egenskapsinformation

headers

headers: RawHttpHeaders & RouteRequestRouteDirectionsBatch202Headers

Egenskapsvärde

status

status: "202"

Egenskapsvärde

"202"

Information om ärvda egenskaper

body

Parsad brödtext

body: unknown

Egenskapsvärde

unknown

ärvd från HttpResponse.body

request

Begäran som genererade det här svaret.

request: PipelineRequest

Egenskapsvärde

ärvd från HttpResponse.request