2016-12-13 29 views
1

我阅读了NGSIv2 specification中的“自定义通知”部分,我仍然对如何完成这项工作产生怀疑。如何在使用Orion的传出通知中添加自定义标题?

我是否必须在我的订阅POST中将以下代码作为有效内容?

"httpCustom": { 
    "url": "http://foo.com/entity/${id}", 
    "headers": { 
    "Content-Type": "text/plain" 
    }, 
    "method": "PUT", 
    "qs": { 
    "type": "${type}" 
    }, 
    "payload": "The temperature is ${temperature} degrees" 
} 

如何使用认证/授权订阅httpCustom的完整载荷?

最后,真的有必要使用Rush,如Rush Relayer所述?在这种情况下,我们必须使用3年前更新的“第三方”软件。 Orion为什么不提供这个?我也希望得到一些关于这方面的帮助。

回答

1

以下httpCustom可用于:

"httpCustom": { 
    "url": "http://example.com/some/path", 
    "headers": { 
    "X-Auth-Token": "n5u43SunZCGX0AbnD9e8R537eDslLM" 
    } 
} 

令牌will expire from time to time。因此,应该定期更新它,使用新标记修改httpCustom元素(使用PATCH /v2/subscriptions/<id>操作,有​​关详细信息,请参阅NGSIv2 specification)。

关于Rush,如果您可以通过一些等效软件实现HTTP-to-HTTPS,则不是必需的。 Orion的原生HTTPS通知已被识别为a topic of interest,甚至在该行中还有一个pull request的代码实现。目前,它是不是一个优先事项,但与此相关的贡献,欢迎:)

编辑:上述httpCustom配置将让猎户座发送通知包括X-Auth-Token头。因此,假定在url端点(例如,上述示例中的http://example.com/some/path),能够处理头部的认证元件将监听(通常是策略强制点-PEP-代理)。

UPDATE:自从版本1.7.0以来,Orion实现了原生HTTPS通知(即不需要Rush)。

+0

我会尽快尝试。虽然这样,@fgalan你认为只有在认证/授权过程之后才允许你对DELETE操作提出什么建议?我试图做一个DELETE操作,传递一个X-Auth-Token,但是我得到了这个: 这个操作的状态是:400发生了一些错误! {“error”:“BadRequest”,“description”:“Orion不接受GET/DELETE请求的有效内容,HTTP头Content-Type因此被禁止”} – Dalton

+0

为了不混合主题,我建议你问你的新问题作为一个相关的帖子stackoverflow,请。谢谢! – fgalan

+0

嗨,@fgalan。我做了你所说的,通过httpCustom注册一些订阅,如下所示: '“notification”:{ “httpCustom”:{ “url”:“http:// myapp:1028”, “headers”:{ “X-Auth-Token”:“u2ljrNrf0zNDmITX7Dyyx347DLKa4c” } }' 但我不明白这是如何工作的。我注册了一个通过有效令牌的订阅。当此令牌将在发送一些通知时进行验证?显然,httpCustom中的x-auth-token不起作用,因为我测试了使用无效令牌创建订阅并发送了通知。 – Dalton

相关问题