迁移此处将 RoutingAPI 从 7 映射到 V8。需要在请求标头中设置 X-Request-Id 并从响应中读取相同的内容。
版本 7 中的旧实现:发送“requestId”作为查询参数并从响应中的“response.metaInfo.requestId”节点读取值
router.calculateRoute(
{
...
"requestId": "Route_1"
},
CallBackFn,
function (error) {
alert(error.message);
}
);
尝试在V8版本中进行如下设置:
_platform = new H.service.Platform({
apikey: _appkey,
});
router = _platform.getRoutingService(null, 8);
router.i = {"X-Request-ID": "Route_1"}
从上面的代码中,可以设置请求头。但无法从回调函数读取响应头
路由 v7:requestId
路由 v8:使用标头 X-Request-ID
X-Request-ID
您可以使用非标准 HTTP 标头 X-Request-Id 使用请求标识符来标记您的请求。无论成功还是失败,服务都会将此值转发给响应。如果未提供值,则将在传入请求上生成 UUID,并且该值将作为 X-Request-Id 附加到响应中。虽然您可以使用任何字符串作为请求标识符,但我们建议使用 UUID 来唯一标识您的请求或请求组。
迁移指南:https://developer.here.com/documentation/routing-api/migration_guide/index.html
v8 指南:https://developer.here.com/documentation/routing-api/dev_guide/topics/trace-request.html
两年后,我遇到了同样的问题。 到目前为止提供的答案并未考虑到这是路由 API 的 Here Maps SDK for Javascript 帮助程序这一事实,问题是响应标头不可用。
我发现您可以使用以下方式传递出站标头:
const router = platform.getRoutingService(
{
headers: {
'X-Request-ID': 'foo',
},
},
8
);
但到目前为止,还没有找到从响应中检索请求 ID 的受支持方法(它在那里,所以它正在工作 - 只是无法通过代码获取它)。 我想我要么直接改用 HERE Routing API(使用 GET 或 POST),要么找到另一种方法来跟踪我的请求。