本文介绍了长寿的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交互的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-28 08:57