你当前正在访问 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 天
请注意,异步批处理请求是长时间运行的请求。 下面是一系列典型的操作:
客户端向 Azure Maps 发送路线方向批处理
POST
请求服务器将使用以下项之一进行响应:
HTTP
202 Accepted
- 已接受 Batch 请求。HTTP
Error
- 处理 Batch 请求时出错。 这可能是400 Bad Request
或任何其他Error
状态代码。如果成功接受批处理请求,则响应中的
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" }
]
}
批处理中 查询
异步 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}
下面是用于下载批处理结果的典型操作序列:
客户端使用 下载 URL发送
GET
请求。服务器将使用以下项之一进行响应:
HTTP
202 Accepted
- 已接受 Batch 请求,但仍正在处理。 请在一段时间后重试。HTTP
200 OK
- 批处理请求已成功处理。 响应正文包含所有批处理结果。
批处理响应模型
返回的数据内容与异步和同步请求类似。 下载异步批处理请求的结果时,如果批处理已完成处理,响应正文将包含批处理响应。 此批处理响应包含一个 summary
组件,该组件指示作为原始批处理请求的一部分的 totalRequests
,以及成功执行的查询 successfulRequests
。 批处理响应还包括一个 batchItems
数组,其中包含批处理请求中每个查询的响应。
batchItems
将包含结果,其顺序与在批处理请求中发送原始查询的顺序完全相同。
batchItems
中的每个项都包含 statusCode
和 response
字段。
batchItems
中的每个 response
都是以下类型之一:
RouteDirections
- 如果查询成功完成。Error
- 如果查询失败。 在这种情况下,响应将包含code
和message
。
下面是一个示例 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"