对于在非restful外观(如XMPP API或websockets通道)背后使用restful API (比方说标准Rails应用程序)的一般问题,我正在努力寻找相关的最佳实践/规范/文献等。
例如,我有一个restful Rails应用程序,我想公开一个只读的异步接口。这是非常简单的事情,Rails应用程序推送到Redis pubsub通道,该通道从node.js消费,然后发送到websocket通道(1)。现在,我怎样才能最好地让这个异步api读/写呢?我正在考虑客户端通过websockets通道发送到服务器,这基本上相当于序列化的http请求或轻量级的json编码的有效负载,这些请求将转到Resque队列,然后从主应用程序中解析,但我想知道是否有以前的工作/规范/体系结构可以构建,或者只是我可能忽略的更优雅的方法。
(1)很明显,你可以用'xmpp‘来代替'websockets’,一般关心的是,非restful接口背后的restful应用程序仍然适用。
提前感谢您的帮助。
发布于 2010-08-14 00:50:57
除了调用/响应的方法,我不确定是否真的有任何区别。
例如,在web世界中,所有对REST接口的调用通常都是从浏览器进行的,在浏览器中,任何状态跟踪都是在服务器端进行的,就像您处理web客户端一样。因此,客户端接口通常会发送大量数据(直接或间接通过cookie),以允许服务器重新构建调用的上下文。
对于通过XMPP (bosh或direct)或Websockets进行的调用,您将需要执行相同的操作,因为客户端将与中间层、XMPP组件或bot进行对话,该中间层接收构成请求的节,收集任何存储的状态,然后将其传递给REST。
在最基本的形式中,XMPP bot/组件将只接受传入的节,将其转换为REST调用,进行该调用,然后打包结果。
https://stackoverflow.com/questions/3367232
复制相似问题