0

我正在尝试找到相关的最佳实践/规范/文献/等。解决在非 RESTful 外观(如 XMPP API 或 websockets 通道)后面使用 RESTful API(例如,标准 Rails 应用程序)的一般问题。

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

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

提前感谢您的帮助。

4

1 回答 1

0

我不确定除了调用/响应的方法之外真的有什么区别。

例如,在网络世界中,所有对 REST 接口的调用通常都是从浏览器进行的,其中任何状态跟踪都是在服务器端完成的,就像您与网络客户端打交道一样。因此客户端接口通常会发送大量数据(直接或间接通过 cookie)以允许服务器重建调用的上下文。

通过 XMPP(bosh 或直接)或 Websockets 进行调用时,您将需要做同样的事情,因为客户端将与接收构成请求的节的中间体、XMPP 组件或机器人交谈,收集任何存储的状态然后将其传递给 REST。

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

于 2010-08-13T16:50:57.300 回答