RouteRequestRouteDirectionsBatch200Response interface
De Post Route Directions Batch
-API is een HTTP-POST
-aanvraag waarmee batches query's worden verzonden naar de Routebeschrijving ophalen-API met behulp van één asynchrone aanvraag. U kunt Route Directions Batch
API aanroepen om asynchroon (asynchroon) of synchroon (sync) uit te voeren. Met de asynchrone API kan de aanroeper maximaal 700 query's batcheren en API synchroniseren tot 100 query's. Zie Post Route Directions Batch
om de API aan te roepen in een synchrone aanvraag.
Asynchrone batchaanvraag verzenden
De Asynchrone API is geschikt voor het verwerken van grote volumes van relatief complexe routeaanvragen
- Hiermee kunt u resultaten ophalen in een afzonderlijke aanroep (er zijn meerdere downloads mogelijk).
- De asynchrone API is geoptimaliseerd voor betrouwbaarheid en zal naar verwachting geen time-out hebben.
- Het aantal batchitems is beperkt tot 700 voor deze API.
Wanneer u een aanvraag indient met behulp van een asynchrone aanvraag, retourneert de service standaard een 202-antwoordcode langs een omleidings-URL in het veld Locatie van de antwoordheader. Deze URL moet periodiek worden gecontroleerd totdat de antwoordgegevens of foutgegevens beschikbaar zijn. De asynchrone antwoorden worden gedurende 24 uur opgeslagen. De omleidings-URL retourneert een 404-antwoord als deze wordt gebruikt na de verloopperiode.
Houd er rekening mee dat een asynchrone batchaanvraag een langdurige bewerking is. Hier volgt een typische reeks bewerkingen:
- De client verzendt een Route directions Batch
POST
aanvraag naar Azure Maps.
POST https://atlas.microsoft.com/route/directions/batch/json?api-version=1.0&subscription-key={subscription-key}
De server reageert op een van de volgende manieren:
HTTP-
202 Accepted
- Batch-aanvraag is geaccepteerd.HTTP-
Error
: er is een fout opgetreden bij het verwerken van uw Batch-aanvraag. Dit kan een400 Bad Request
of een andereError
statuscode zijn.Als de batchaanvraag is geaccepteerd, bevat de
Location
header in het antwoord de URL om de resultaten van de batchaanvraag te downloaden. Deze status-URI ziet er als volgt uit:
GET https://atlas.microsoft.com/route/directions/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}
- Client geeft een
GET
aanvraag uit op de download-URL verkregen in stap 3 om de batchresultaten te downloaden.
POST-hoofdtekst voor Batch-aanvraag
Als u de routebeschrijvingen query's wilt verzenden, gebruikt u een POST
aanvraag waarin de aanvraagbody de batchItems
matrix in json
indeling bevat en de Content-Type
-header wordt ingesteld op application/json
. Hier volgt een voorbeeld van een aanvraagbody met drie routebeschrijvingen query's:
{
"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" }
]
}
Een routebeschrijving query in een batch is slechts een gedeeltelijke URL zonder het protocol, de basis-URL, het pad, de API-versie en de abonnementssleutel te. Het kan een van de ondersteunde routebeschrijvingenURI-parametersaccepteren. De tekenreekswaarden in de routebeschrijvingen query correct moeten worden escaped (bijvoorbeeld " teken moet worden escaped met \ ) en moet ook correct url-gecodeerd zijn.
Met de asynchrone API kan de aanroeper maximaal 700 query's batcheren en API synchroniseren tot 100 query's. De batch moet ten minste 1 query bevatten.
Asynchrone batchresultaten downloaden
Als u de asynchrone batchresultaten wilt downloaden, geeft u een GET
aanvraag uit naar het eindpunt voor batchdownload. Deze download-URL kan worden verkregen uit de Location
header van een geslaagde POST
batchaanvraag en ziet er als volgt uit:
https://atlas.microsoft.com/route/directions/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}
Hier volgt de gebruikelijke reeks bewerkingen voor het downloaden van de batchresultaten:
De client verzendt een
GET
aanvraag met behulp van de download-URL.De server reageert op een van de volgende manieren:
HTTP-
202 Accepted
- Batch-aanvraag is geaccepteerd, maar wordt nog steeds verwerkt. Probeer het over enige tijd opnieuw.HTTP-
200 OK
- Batch-aanvraag is verwerkt. De hoofdtekst van het antwoord bevat alle batchresultaten.
Batch-antwoordmodel
De geretourneerde gegevensinhoud is vergelijkbaar voor asynchrone en synchronisatieaanvragen. Bij het downloaden van de resultaten van een asynchrone batchaanvraag, als de batch is verwerkt, bevat de hoofdtekst van het antwoord het batchantwoord. Dit batchantwoord bevat een summary
-onderdeel dat de totalRequests
aangeeft die deel uitmaakten van de oorspronkelijke batchaanvraag en successfulRequests
, d.w.w.v. query's die zijn uitgevoerd. Het batchantwoord bevat ook een batchItems
matrix die een antwoord bevat voor elke query in de batchaanvraag. De batchItems
bevat de resultaten in exact dezelfde volgorde als de oorspronkelijke query's zijn verzonden in de batchaanvraag. Elk item in batchItems
bevat statusCode
- en response
velden. Elke response
in batchItems
is van een van de volgende typen:
RouteDirections
: als de query is voltooid.Error
: als de query is mislukt. Het antwoord bevat in dit geval eencode
en eenmessage
.
Hier volgt een voorbeeld van een Batch-antwoord met 1 geslaagde en 1 is mislukt resultaat:
{
"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."
}
}
}
]
}
- Uitbreiding
Eigenschappen
body | |
status |
Overgenomen eigenschappen
headers | De HTTP-antwoordheaders. |
request | De aanvraag die dit antwoord heeft gegenereerd. |
Eigenschapdetails
body
status
status: "200"
Waarde van eigenschap
"200"
Details van overgenomen eigenschap
headers
De HTTP-antwoordheaders.
headers: RawHttpHeaders
Waarde van eigenschap
overgenomen van HttpResponse.headers
request
De aanvraag die dit antwoord heeft gegenereerd.
request: PipelineRequest
Waarde van eigenschap
overgenomen van HttpResponse.request
Azure SDK for JavaScript