Compartir a través de


RouteRequestRouteDirectionsBatch202Response interface

Route Directions Batch API

Se aplica a: consulte precios niveles.

Route Directions Batch API envía lotes de consultas a Route Directions API con una sola llamada API. Puede llamar a Route Directions Batch API para que se ejecute de forma asincrónica (asincrónica) o sincrónica (sincrónica). La API asincrónica permite al autor de la llamada procesar por lotes hasta 700 consultas y sincronizar la API hasta 100 consultas.

Enviar solicitud por lotes asincrónica

La API asincrónica es adecuada para procesar grandes volúmenes de solicitudes de ruta relativamente complejas.

  • Permite la recuperación de resultados en una llamada independiente (se pueden realizar varias descargas).
  • La API asincrónica está optimizada para la confiabilidad y no se espera que se ejecute en un tiempo de espera.
  • El número de elementos por lotes se limita a 700 para esta API.

Cuando se realiza una solicitud mediante una solicitud asincrónica, el servicio devuelve de forma predeterminada un código de respuesta 202 a lo largo de una dirección URL de redireccionamiento en el campo Ubicación del encabezado de respuesta. Esta dirección URL debe comprobarse periódicamente hasta que los datos de respuesta o la información de error estén disponibles. Las respuestas asincrónicas se almacenan durante 14 días. La dirección URL de redireccionamiento devuelve una respuesta 404 si se usa después del período de expiración.

Tenga en cuenta que la solicitud por lotes asincrónica es una solicitud de larga duración. Esta es una secuencia típica de operaciones:

  1. El cliente envía una solicitud de POST de Route Directions Batch a Azure Maps

  2. El servidor responderá con uno de los siguientes elementos:

    HTTP 202 Accepted: se ha aceptado la solicitud por lotes.

    HTTP Error: se produjo un error al procesar la solicitud de Batch. Esto podría ser un 400 Bad Request o cualquier otro código de estado de Error.

  3. Si la solicitud por lotes se aceptó correctamente, el encabezado Location de la respuesta contiene la dirección URL para descargar los resultados de la solicitud por lotes. Este URI de estado es similar al siguiente:

GET https://atlas.microsoft.com/route/directions/batch/{batch-id}?api-version=1.0 Nota: Recuerde agregar información de AUTH (clave de suscripción/azure_auth - Consulte Security) al URI de estado de antes de ejecutarlo.
4. El cliente emite una solicitud de GET en la dirección URL de descarga de obtenida en el paso 3 para descargar los resultados del lote.

Cuerpo POST para solicitud por lotes

Para enviar las direcciones de ruta consultas, usará una solicitud de POST donde el cuerpo de la solicitud contendrá la matriz de batchItems en formato json y el encabezado Content-Type se establecerá en application/json. Este es un cuerpo de solicitud de ejemplo que contiene 3 direcciones de ruta 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" }
    ]
}

Una direcciones de ruta consulta en un lote es simplemente una dirección URL parcial sin el protocolo, la dirección URL base, la ruta de acceso, la versión de api y la clave de suscripción. Puede aceptar cualquiera de las direcciones de ruta de admitidasparámetros de URI. Los valores de cadena de la direcciones de ruta consulta deben tener un escape correcto (por ejemplo, " el carácter debe ser de escape con \ ) y también debe estar correctamente codificado con dirección URL.

La API asincrónica permite al autor de la llamada procesar por lotes hasta 700 consultas y sincronizar la API hasta 100 consultas de y el lote debe contener al menos 1 consulta de.

Descargar resultados de lotes asincrónicos

Para descargar los resultados del lote asincrónico, emitirá una solicitud de GET al punto de conexión de descarga por lotes. Esta dirección URL de descarga se puede obtener del encabezado Location de una solicitud por lotes de POST correcta y tiene el siguiente aspecto:

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

Esta es la secuencia típica de operaciones para descargar los resultados del lote:

  1. El cliente envía una solicitud de GET mediante la dirección URL de descarga de .

  2. El servidor responderá con uno de los siguientes elementos:

    HTTP 202 Accepted: se aceptó la solicitud por lotes, pero todavía se está procesando. Inténtelo de nuevo en algún momento.

    HTTP 200 OK: solicitud de Batch procesada correctamente. El cuerpo de la respuesta contiene todos los resultados del lote.

Modelo de respuesta por lotes

El contenido de datos devuelto es similar para las solicitudes asincrónicas y de sincronización. Al descargar los resultados de una solicitud por lotes asincrónica, si el lote ha terminado de procesarse, el cuerpo de la respuesta contiene la respuesta por lotes. Esta respuesta por lotes contiene un componente de summary que indica el totalRequests que formaron parte de la solicitud por lotes original y successfulRequestses decir, consultas que se ejecutaron correctamente. La respuesta por lotes también incluye una matriz de batchItems que contiene una respuesta para cada consulta y cada consulta de la solicitud por lotes. El batchItems contendrá los resultados en el mismo orden en que se enviaron las consultas originales en la solicitud por lotes. Cada elemento de batchItems contiene campos statusCode y response. Cada response de batchItems es de uno de los siguientes tipos:

  • RouteDirections: si la consulta se completó correctamente.

  • Error: si se produjo un error en la consulta. La respuesta contendrá un code y un message en este caso.

Esta es una respuesta por lotes de ejemplo con 1 correcto y 1 error resultado:

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

Propiedades

body
headers
status

Propiedades heredadas

request

Solicitud que generó esta respuesta.

Detalles de las propiedades

body

body: Record<string, unknown>

Valor de propiedad

Record<string, unknown>

headers

headers: RawHttpHeaders & RouteRequestRouteDirectionsBatch202Headers

Valor de propiedad

status

status: "202"

Valor de propiedad

"202"

Detalles de las propiedades heredadas

request

Solicitud que generó esta respuesta.

request: PipelineRequest

Valor de propiedad

Heredado de HttpResponse.request