我正在编写一个REST API,为资源提供CRUD操作。
我希望用户能够注册一些资源更改并通过服务器推送获取更新。对于服务器推送,我将提供对反向ajax,隐藏iframe和websockets的支持。为了尽可能地创建REST,我创建了一个Streaming资源来处理注册和与客户端的连接:
流媒体资源:
URI uri : A GET against this URI refreshes the client representation of the resources accessible to this user.
bool WebSocket : Indicate if websocket is available on this server
bool ReverseXHR : Indicate if ReverseXHR is available on this server
bool HiddenIframe : Indicate if HiddenIframe is available on this server
Registration[] Registrations : The set of registration tasks.
OpenChannel:打开从网络服务器到客户端的流媒体通道。 GET参数类型=(websocket | xhr | hiddeniframe)
CloseChannel:关闭从网络服务器到客户端的流媒体通道。 GET参数类型=(websocket | xhr | hiddeniframe)
调用openchannel?type=websocket
会打开websocket并开始流式传输已注册值的数据。
我读了很多文章,但我仍然有点困惑。这样做之后我还可以调用我的API REST吗?如果没有(或是)为什么?
感谢您的帮助!
答案 0 :(得分:0)
首先,始终实施有意义的解决您所面临的问题。符合给定的体系结构样式可以提供特定的好处,但这不应该排除针对给定问题的实用解决方案。
但话说回来,似乎你正在使用资源数据流作为一种“隧道”信息的方式。在客户端和服务器之间。我对此很新,但在我看来,隧道数据与uniform interface约束中的REST architectural style.约束相比,HTTP上的隧道是针对基于SOAP的服务的批评级别之一。