处理来自 Here Maps Routing Javascript API 的 X-request-id 请求标头

问题描述 投票:0回答:2

迁移此处将 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"}

从上面的代码中,可以设置请求头。但无法从回调函数读取响应头

here-api
2个回答
0
投票

路由 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


0
投票

两年后,我遇到了同样的问题。 到目前为止提供的答案并未考虑到这是路由 API 的 Here Maps SDK for Javascript 帮助程序这一事实,问题是响应标头不可用。

我发现您可以使用以下方式传递出站标头:

 const router = platform.getRoutingService(
    {
      headers: {
        'X-Request-ID': 'foo',
      },
    },
    8
  );

但到目前为止,还没有找到从响应中检索请求 ID 的受支持方法(它在那里,所以它正在工作 - 只是无法通过代码获取它)。 我想我要么直接改用 HERE Routing API(使用 GET 或 POST),要么找到另一种方法来跟踪我的请求。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.