我正在尝试从DC Metro's API tool获取数据。我正在使用“训练位置”链接。
我需要配置SSLContextService
,但是我只有网站提供的主键和辅助键。例如,密钥的格式如下:
5bcf1f7d091f4f618f1eefbefe23a56e
f15633bd2dd44a1f944c96361c0ab26f
如何在NiFi的SSLContext
部分进行配置?我正在使用GetHTTP
。这是我目前拥有的图片,首先是GetHTTP
配置,然后是SSL
配置:
下一个配置:
我不知道如何将上面的那些键用作Truststore
或Keystore
,或者这是否就是我应该要做的。我的密钥库文件名指向cacerts
,但是我知道这些密钥不在其中。我尝试将它们转换为.pem
,这是一个错误,尤其是当我将它们放入keystore.jks
时。
我收到此错误:
我如何获得访问权限?
有用的link on API link。
答案 0 :(得分:3)
请注意,您提供的API密钥(例如7960778b79e547969a9c201ceeda50d8)就像密码一样被视为敏感信息。
这些密钥用于访问 API ,与用于SSL协商的NiFi密钥库/信任库无关。在这种情况下,使用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}是您的API密钥,{contentType}是HTTP响应内容类型。如果您不熟悉这些术语,则可能需要研究它们。我建议首先使上述curl命令起作用,然后再将其传递给NiFi。
curl -v -X GET“ api.wmata.com/TrainPositions/TrainPositions?contentType=json” -H“ api_key:e13626d03d8e4c03ac07f95541b3091b”为我工作。 (这是wmata网站的测试API密钥)。
在InvokeHTTP中,您将添加一个名为“ api_key”的处理器属性(点击右上角的加号),并将其值设置为用户键(我不知道这是否是主键),然后将“ “要发送的属性”属性值为“ api_key”。就像我们在上面用-H“ api_key:e136 ...”在curl中所做的一样,这将把api_key属性(密钥)作为标头api_key发送。