本文介绍了长寿的RESTful交互的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我们目前在我的团队中进行了一个讨论,我对其他观点也感兴趣。假设我们有一个RESTful Web服务,它的作用是通过应用各种分析算法和服务对文档进行注释。明确的基本互动:我们有一个资源是文件收集;客户端向集合发送一个新文档,获取新文档的URI,然后可以获取 docURI
以获取文档或GET {docURI} / metadata
可查看一般元数据 {docURI} / ne
等命名实体等。问题是一些分析可能需要很长时间才能完成。假设客户端在分析完成之前获取元数据URI,因为它希望能够在UI中显示部分或增量结果。未来重复GET可能会产生更多结果。 我们讨论的解决方案包括:
- 保持HTTP连接打开
,直到所有分析完成(哪个
看起来不可扩展) - 使用
content-length
和accept-range
标头以获取增量内容(但
我们不知道提高
的最终内容将持续多久) - 为每个资源提供
一个Atom订阅源,以便客户订阅更新
事件的
而不是简单地获取
资源(似乎超过
复杂,如果有很多活动文档,可能资源匮乏) - 只要有GET返回
无论是当时可用(但仍然是
留下客户端的问题
知道什么时候我们终于完成) li>
任何意见或建议在RESTful架构中处理长时间或异步交互的替代方法?
Ian
解决方案
Have you considered SUP?
If polling is an option, why bother with a feed? Why not just have the clients poll the resource itself?
Could you cut down on unnecessary polling by including an estimated time for completion of the analyses?
这篇关于长寿的RESTful交互的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!