Sdílet prostřednictvím


RouteRequestRouteDirectionsBatch202Response interface

Rozhraní API Post Route Directions Batch je požadavek HTTP POST, který odesílá dávky dotazů do Získání směrů tras api pomocí jednoho asynchronního požadavku. Můžete volat rozhraní API Route Directions Batch tak, aby se spustilo asynchronně (async), nebo synchronně (synchronně). Asynchronní rozhraní API umožňuje volajícímu dávkovat až 700 dotazů a synchronizovat rozhraní API až do 100 dotazů. Pokud chcete volat rozhraní API Post Route Directions Batch v synchronním požadavku, přečtěte si téma Směry směrování služby Batch Sync.

Odeslání asynchronního dávkového požadavku

Asynchronní rozhraní API je vhodné pro zpracování velkých objemů relativně složitých požadavků na trasu.

  • Umožňuje načtení výsledků v samostatném volání (je možné stáhnout více souborů).
  • Asynchronní rozhraní API je optimalizované pro spolehlivost a neočekává se, že dojde k vypršení časového limitu.
  • Počet dávkových položek je omezený na 700 pro toto rozhraní API.

Když provedete požadavek pomocí asynchronního požadavku, služba ve výchozím nastavení vrátí kód odpovědi 202 podél adresy URL přesměrování v poli Umístění hlavičky odpovědi. Tato adresa URL by se měla pravidelně kontrolovat, dokud nebudou k dispozici data odpovědí nebo informace o chybě. Asynchronní odpovědi se ukládají po dobu 24 hodin. Adresa URL pro přesměrování vrátí odpověď 404, pokud se použije po uplynutí doby platnosti.

Upozorňujeme, že asynchronní dávkový požadavek je dlouhotrvající operace. Tady je typická posloupnost operací:

  1. Klient odešle do služby Azure Maps žádost o směrování služby Batch POST.
POST https://atlas.microsoft.com/route/directions/batch/json?api-version=1.0&subscription-key={subscription-key}
  1. Server odpoví jedním z následujících způsobů:

    202 Accepted HTTP – Žádost batch byla přijata.

    HTTP Error – Při zpracování požadavku batch došlo k chybě. Může to být 400 Bad Request nebo jakýkoli jiný stavový kód Error.

  2. Pokud se dávkový požadavek úspěšně přijal, hlavička Location v odpovědi obsahuje adresu URL pro stažení výsledků dávkové žádosti. Tento identifikátor URI stavu vypadá takto:

GET https://atlas.microsoft.com/route/directions/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}
  1. Klient vydá GET požadavek na adresu URL pro stažení získané v kroku 3 ke stažení výsledků dávky.

Text POST pro dávkový požadavek

Pokud chcete odeslat směr trasy dotazy, použijete požadavek POST, kde text požadavku bude obsahovat pole batchItems ve formátu json a hlavička Content-Type bude nastavená na application/json. Tady je ukázkový text požadavku obsahující 3 směry trasy dotazy:

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

Směr trasy dotazu v dávce je pouze částečná adresa URL bez protokolu, základní adresy URL, cesty, verze api a klíče předplatného. Může přijmout kterýkoli z podporovaných směrů trasyparametry identifikátoru URI. Řetězcové hodnoty v směrech trasy dotazu musí být správně uchycené (např. znak " by měl být uchvácen pomocí \ ) a měl by být také správně zakódován adresou URL.

Asynchronní rozhraní API umožňuje volajícímu dávkovat až 700 dotazů a synchronizovat rozhraní API až do 100 dotazů a dávka by měla obsahovat alespoň 1 dotaz.

Stažení asynchronních dávkových výsledků

Pokud chcete stáhnout asynchronní výsledky dávky, vydáte GET požadavek na koncový bod dávkového stahování. Tuto adresu URL pro stažení lze získat z hlavičky úspěšného dávkového požadavku a vypadá takto:

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

Tady je typická posloupnost operací pro stahování výsledků dávky:

  1. Klient odešle požadavek GET pomocí adresy URL pro stažení .

  2. Server odpoví jedním z následujících způsobů:

    202 Accepted HTTP – Požadavek batch byl přijat, ale stále se zpracovává. Zkuste to prosím znovu za nějakou dobu.

    HTTP 200 OK – Dávkové požadavky byly úspěšně zpracovány. Tělo odpovědi obsahuje všechny dávkové výsledky.

Model dávkové odpovědi

Vrácený datový obsah je podobný asynchronním a synchronizačním požadavkům. Při stahování výsledků asynchronní dávkové žádosti, pokud dávka dokončila zpracování, text odpovědi obsahuje dávkovou odpověď. Tato dávková odpověď obsahuje komponentu summary, která označuje totalRequests, které byly součástí původní dávkové žádosti a successfulRequeststj. dotazy, které byly úspěšně provedeny. Dávková odpověď obsahuje také pole batchItems, které obsahuje odpověď pro každý dotaz v dávkovém požadavku. batchItems bude obsahovat výsledky ve stejném pořadí, v jakém byly původní dotazy odeslány v dávkové žádosti. Každá položka v batchItems obsahuje pole statusCode a response. Každý response v batchItems má jeden z následujících typů:

  • RouteDirections – Pokud se dotaz úspěšně dokončil.

  • Error – Pokud dotaz selhal. Odpověď bude obsahovat code a v tomto případě message.

Tady je ukázka dávkové odpovědi s 1 úspěšným a 1 neúspěšným výsledku:

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

Vlastnosti

headers
status

Zděděné vlastnosti

body

Parsované tělo

request

Požadavek, který vygeneroval tuto odpověď.

Podrobnosti vlastnosti

headers

headers: RawHttpHeaders & RouteRequestRouteDirectionsBatch202Headers

Hodnota vlastnosti

status

status: "202"

Hodnota vlastnosti

"202"

Podrobnosti zděděných vlastností

body

Parsované tělo

body: unknown

Hodnota vlastnosti

unknown

zděděno z HttpResponse.body

request

Požadavek, který vygeneroval tuto odpověď.

request: PipelineRequest

Hodnota vlastnosti

zděděno z HttpResponse.request