你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

RouteRequestRouteDirectionsBatch202Response interface

路由方向批处理 API

适用于:请参阅定价

路由方向批处理 API 仅使用单个 API 调用将一批查询发送到 路由方向 API。 可以调用路由方向 Batch API 以异步(异步)或同步运行(同步)。 异步 API 允许调用方对多达 700 个 查询进行批处理,并将 API 同步到 100 个 查询。

提交异步批处理请求

异步 API 适用于处理大量相对复杂的路由请求

  • 它允许在单独的调用中检索结果(可能有多个下载)。
  • 异步 API 针对可靠性进行优化,预计不会遇到超时。
  • 此 API 的批项数限制为 700

使用异步请求发出请求时,默认情况下,服务会返回响应标头的“位置”字段中的重定向 URL 的 202 响应代码。 应定期检查此 URL,直到响应数据或错误信息可用。 异步响应的存储时间为 14 天 。 重定向 URL 返回 404 响应(如果在到期期限后使用)。

请注意,异步批处理请求是长时间运行的请求。 下面是一系列典型的操作:

  1. 客户端向 Azure Maps 发送路线方向批处理 POST 请求

  2. 服务器将使用以下项之一进行响应:

    HTTP 202 Accepted - 已接受 Batch 请求。

    HTTP Error - 处理 Batch 请求时出错。 这可能是 400 Bad Request 或任何其他 Error 状态代码。

  3. 如果成功接受批处理请求,则响应中的 Location 标头包含用于下载批处理请求结果的 URL。 此状态 URI 如下所示:

GET https://atlas.microsoft.com/route/directions/batch/{batch-id}?api-version=1.0 注意:-请记得在运行身份验证之前将身份验证信息(subscription-key/azure_auth - 请参阅 安全)添加到 状态 URI
4.客户端在步骤 3 中获取的 下载 URL 发出 GET 请求,以下载批处理结果。

批处理请求的 POST 正文

若要发送 路由方向 查询,将使用 POST 请求,其中请求正文将包含 json 格式的 batchItems 数组,Content-Type 标头将设置为 application/json。 下面是一个示例请求正文,其中包含 3 个 路由方向 查询:

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

批处理中 查询 路由方向只是部分 URL ,无需 协议、基 URL、路径、api 版本和订阅密钥。 它可以接受任何受支持的 路由方向URI 参数路由方向中的字符串值 查询必须正确转义(例如“字符应使用 \ 进行转义),并且还应正确编码 URL。

异步 API 允许调用方对多达 700 个 查询进行批处理,并同步 API 最多 100 个 查询,批处理应至少包含 1 个 查询。

下载异步批处理结果

若要下载异步批处理结果,将向批处理下载终结点发出 GET 请求。 可以从成功 POST 批处理请求的 Location 标头获取此 下载 URL,如下所示:

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

下面是用于下载批处理结果的典型操作序列:

  1. 客户端使用 下载 URL发送 GET 请求。

  2. 服务器将使用以下项之一进行响应:

    HTTP 202 Accepted - 已接受 Batch 请求,但仍正在处理。 请在一段时间后重试。

    HTTP 200 OK - 批处理请求已成功处理。 响应正文包含所有批处理结果。

批处理响应模型

返回的数据内容与异步和同步请求类似。 下载异步批处理请求的结果时,如果批处理已完成处理,响应正文将包含批处理响应。 此批处理响应包含一个 summary 组件,该组件指示作为原始批处理请求的一部分的 totalRequests,以及成功执行的查询 successfulRequests。 批处理响应还包括一个 batchItems 数组,其中包含批处理请求中每个查询的响应。 batchItems 将包含结果,其顺序与在批处理请求中发送原始查询的顺序完全相同。 batchItems 中的每个项都包含 statusCoderesponse 字段。 batchItems 中的每个 response 都是以下类型之一:

  • RouteDirections - 如果查询成功完成。

  • Error - 如果查询失败。 在这种情况下,响应将包含 codemessage

下面是一个示例 Batch 响应,其中 1 个 成功,1 个 失败 结果:

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

属性

body
headers
status

继承属性

request

生成此响应的请求。

属性详细信息

body

body: Record<string, unknown>

属性值

Record<string, unknown>

headers

headers: RawHttpHeaders & RouteRequestRouteDirectionsBatch202Headers

属性值

status

status: "202"

属性值

"202"

继承属性详细信息

request

生成此响应的请求。

request: PipelineRequest

属性值

继承自 HttpResponse.request