我正在尝试从DC Metro's API tool获取数据。我正在使用“列车位置”链接。
我需要配置我的SSLContextService
,但我只有网站提供的主密钥和辅助密钥。例如,密钥的形式如下:
5bcf1f7d091f4f618f1eefbefe23a56e
f15633bd2dd44a1f944c96361c0ab26f
如何在NiFi的SSLContext
部分进行配置?我正在使用GetHTTP
。下面是我当前所拥有的配置,首先是GetHTTP
配置,然后是SSL
配置:
下一步配置:
我不知道如何使用上面的键作为Truststore
或Keystore
,或者这是否是我应该做的。我将我的Keystore文件名指向cacerts
,但我知道这些密钥不在其中。我试着将它们转换成.pem
,这是一个错误,特别是当我把它们放在keystore.jks
中的时候。
我得到了这个错误:
如何获取访问权限?
有用的link on API link。
发布于 2018-10-24 00:40:39
请注意,您给出的API密钥就像密码一样被视为敏感信息。
这些密钥用于访问API,与用于NiFi协商的SSL密钥库/信任库无关。在这种情况下使用Java cacerts是正确的,但是您不需要将API密钥添加到信任库。
该页面描述了请求需要采用的形式:https://developer.wmata.com/docs/services/5763fa6ff91823096cac1057/operations/5763fb35f91823096cac1058#TrainPosition
我建议您阅读如何使用web API和发出web请求,然后了解如何使用您的API密钥。他们在底部给出了一个卷曲的例子:
curl -v -X GET "https://api.wmata.com/TrainPositions/TrainPositions?contentType={contentType}"
-H "api_key: {subscription key}"
--data-ascii "{body}"
{subscription key}是您的接口密钥,{contentType}是HTTP响应内容类型。如果您不熟悉这些术语,您可能需要研究它们。我建议先让上面的curl命令起作用,然后再把它传递给NiFi。
"api.wmata.com/TrainPositions/TrainPositions?contentType=json“-v -X GET curl -H "api_key: e13626d03d8e4c03ac07f95541b3091b”适用于我。(这是来自wmata网站的测试API密钥)。
在InvokeHTTP中,您可以添加一个名为'api_key‘的处理器属性(点击右上角的加号),将值设置为您的订阅者键(我不知道这是否是主键),并将"Attributes to Send“属性值设置为"api_key”。这将发送api_key属性(键)作为一个名为api_key的头部,就像我们在上面的curl中使用-H "api_key: e136...“所做的那样。
https://stackoverflow.com/questions/52953501
复制相似问题