【问题标题】:Restful APIs behind non-restful interfaces非 RESTful 接口背后的 Restful API
【发布时间】:2010-07-29 21:48:56
【问题描述】:

我正在尝试查找相关的最佳实践/规范/文献/等。解决在非 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 应用程序仍然适用。

提前感谢您的帮助。

【问题讨论】:

    标签: api rest xmpp websocket


    【解决方案1】:

    我不确定除了调用/响应的方法是否真的有任何区别。

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

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

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

    【讨论】:

      猜你喜欢
      • 2015-11-28
      • 2014-10-19
      • 1970-01-01
      • 2015-12-07
      • 1970-01-01
      • 2014-09-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多