非静态接口背后的宁静API

时间:2010-07-29 21:48:56

标签: api rest xmpp websocket

我正在努力寻找相关的最佳做法/规格/文献等。解决在非平静的外观背后使用restful API(比如标准的Rails应用程序)的一般问题,比如XMPP API或websockets频道。

例如,我有一个安静的Rails应用程序,我想要公开一个只读的异步接口。这是非常简单的东西,Rails应用程序推送到Redis pubsub通道,然后从node.js消耗,并发送到websocket通道(1)。现在,我最好怎么做这个asynch api读/写?我在考虑客户端通过websockets通道发送到服务器,基本上等于序列化的http请求或轻量级的json编码的有效负载,然后转到Resque队列,然后从主应用程序解析,但是我想知道我以前的工作/规格/架构是否可以构建,或者只是我可能会忽略的更优雅的方法。

(1)显然,您可以将'websockets'替换为'xmpp',并且普遍关注的是非静态接口背后的宁静应用仍将适用。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我不确定除了呼叫/响应方法之外确实存在任何差异。

例如,在Web世界中,对REST接口的所有调用通常都是从浏览器进行的,其中任何状态跟踪在服务器端完成,因为您处理Web客户端。因此,客户端接口通常会直接或间接地通过cookie发送大量数据,以允许服务器重建调用的上下文。

通过XMPP(波什或直接)或Websockets进行调用时,您需要执行相同的操作,因为客户端将与正在接收构成请求的节的XMPP组件或机器人交谈,收集任何存储的状态,然后将其传递给REST。

在最基本的形式中,XMPP bot /组件将只接收传入的节,将其转换为REST调用,进行该调用,然后打包结果。