RouteRequestRouteDirectionsBatch200Response interface
A API Post Route Directions Batch
é uma solicitação HTTP POST
que envia lotes de consultas para a API Obter Instruções de Rota usando uma única solicitação assíncrona. Você pode chamar Route Directions Batch
API para ser executada de forma assíncrona (assíncrona) ou síncrona (sincronização). A API assíncrona permite que o chamador lote até 700 consultas e sincronize a API até 100 consultas. Para chamar a API de Post Route Directions Batch
em uma solicitação síncrona, consulte de Sincronização de Lotes de Direções pós-rota.
Enviar solicitação de lote assíncrona
A API assíncrona é apropriada para processar grandes volumes de solicitações de rota relativamente complexas
- Ele permite a recuperação de resultados em uma chamada separada (vários downloads são possíveis).
- A API assíncrona é otimizada para confiabilidade e não é esperada para ser executada em um tempo limite.
- O número de itens em lote é limitado a 700 para essa API.
Quando você faz uma solicitação usando solicitação assíncrona, por padrão, o serviço retorna um código de resposta 202 ao longo de uma URL de redirecionamento no campo Local do cabeçalho de resposta. Essa URL deve ser verificada periodicamente até que os dados de resposta ou informações de erro estejam disponíveis. As respostas assíncronas são armazenadas por 24 horas. A URL de redirecionamento retorna uma resposta 404 se usada após o período de expiração.
Observe que a solicitação de lote assíncrona é uma operação de execução prolongada. Aqui está uma sequência típica de operações:
- O cliente envia uma solicitação de
POST
do Lote de Rotas para o Azure Mapas.
POST https://atlas.microsoft.com/route/directions/batch/json?api-version=1.0&subscription-key={subscription-key}
O servidor responderá com um dos seguintes:
HTTP
202 Accepted
- A solicitação do Lote foi aceita.HTTP
Error
- Houve um erro ao processar sua solicitação do Lote. Isso pode ser um400 Bad Request
ou qualquer outro código de statusError
.Se a solicitação em lote foi aceita com êxito, o cabeçalho
Location
na resposta contém a URL para baixar os resultados da solicitação em lote. Esse URI de status é semelhante ao seguinte:
GET https://atlas.microsoft.com/route/directions/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}
- O cliente emite uma solicitação de
GET
na URL de download obtida na Etapa 3 para baixar os resultados do lote.
Corpo POST para solicitação em lote
Para enviar as rotas consultas, você usará uma solicitação POST
em que o corpo da solicitação conterá a matriz de batchItems
no formato json
e o cabeçalho Content-Type
será definido como application/json
. Aqui está um corpo de solicitação de exemplo contendo 3 rotas consultas:
{
"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" }
]
}
Uma rotas consulta em um lote é apenas um de URL parcial sem o protocolo, a URL base, o caminho, a versão da api e a chave de assinatura. Ele pode aceitar qualquer um dos rotas com suporteparâmetros de URI. Os valores de cadeia de caracteres no rotas consulta devem ser escapados corretamente (por exemplo, " o caractere deve ser escapado com \ ) e também deve ser codificado corretamente em URL.
A API assíncrona permite que o chamador lote até 700 consultas e sincronize a API até 100 consultas e o lote deve conter pelo menos 1 consulta.
Baixar resultados do lote assíncrono
Para baixar os resultados do lote assíncrono, você emitirá uma solicitação GET
para o ponto de extremidade de download em lote. Este de URL de download pode ser obtido do cabeçalho Location
de uma solicitação em lote de POST
bem-sucedida e se parece com o seguinte:
https://atlas.microsoft.com/route/directions/batch/{batch-id}?api-version=1.0&subscription-key={subscription-key}
Esta é a sequência típica de operações para baixar os resultados do lote:
O cliente envia uma solicitação de
GET
usando a URL de download .O servidor responderá com um dos seguintes:
HTTP
202 Accepted
- A solicitação do Lote foi aceita, mas ainda está sendo processada. Tente novamente em algum tempo.HTTP
200 OK
– Solicitação em lote processada com êxito. O corpo da resposta contém todos os resultados do lote.
Modelo de resposta em lote
O conteúdo de dados retornado é semelhante para solicitações assíncronas e de sincronização. Ao baixar os resultados de uma solicitação em lote assíncrona, se o lote tiver concluído o processamento, o corpo da resposta conterá a resposta em lote. Essa resposta em lote contém um componente summary
que indica o totalRequests
que faziam parte da solicitação em lote original e successfulRequests
ou seja, consultas que foram executadas com êxito. A resposta em lote também inclui uma matriz de batchItems
que contém uma resposta para cada consulta na solicitação em lote. O batchItems
conterá os resultados exatamente na mesma ordem em que as consultas originais foram enviadas na solicitação em lote. Cada item em batchItems
contém campos statusCode
e response
. Cada response
em batchItems
é de um dos seguintes tipos:
RouteDirections
- Se a consulta foi concluída com êxito.Error
- Se a consulta falhou. A resposta conterá umcode
e ummessage
nesse caso.
Aqui está um exemplo de Resposta em Lote com 1 bem-sucedido e 1 resultado com falha:
{
"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
Propriedades
body | |
status |
Propriedades herdadas
headers | Os cabeçalhos de resposta HTTP. |
request | A solicitação que gerou essa resposta. |
Detalhes da propriedade
body
status
status: "200"
Valor da propriedade
"200"
Detalhes das propriedades herdadas
headers
Os cabeçalhos de resposta HTTP.
headers: RawHttpHeaders
Valor da propriedade
Herdado de HttpResponse.headers
request
A solicitação que gerou essa resposta.
request: PipelineRequest
Valor da propriedade
herdado de httpResponse.request
Azure SDK for JavaScript