当前位置:  开发笔记 > 运维 > 正文

REST:缓慢操作的响应式UI?

如何解决《REST:缓慢操作的响应式UI?》经验,为你挑选了1个好方法。

我需要帮助为具有进度条的应用程序创建RESTful设计.

想象一个应用程序,其中一个资源需要很长时间(1分钟)来响应HTTP GET(在我的情况下,我正在扫描网络中的设备).我希望客户端显示一个进度条,指示GET操作需要多长时间,但为了使其正常工作,服务器需要为它们提供操作的时间估计.

鉴于操作缓慢:

HTTP GET /devices

什么是RESTful方式为它提供时间估计?我不认为我可以使用:

HTTP HEAD /devices

因为HEAD应该返回与GET减去身体相同的值(我认为)意味着我必须运行我试图避免的同样长的操作.有任何想法吗?



1> Gili..:

第二个想法,我想我会选择增量响应.根据RESTful Web Services,异步操作最好用HTTP 202表示.

    客户发送 HTTP POST /devices

    服务器响应 HTTP 202 Accepted. Location: /queues/32194532

    引用这本书:

    异步操作现在正在进行中,客户端可以向该URI发出GET请求,以查看它是如何进行的,即获取"作业"资源的当前状态.操作完成后,任何结果都将作为此资源的表示形式提供.一旦客户端完成读取结果,它就可以删除作业资源.客户甚至可以通过提前删除其工作来取消操作.

    引用/sf/ask/17360801/:200 OK当请求的进程仍处于挂起状态时,作业应返回.响应应描述该过程的待定状态.

    引用/sf/ask/17360801/:作业应201 Created在处理完成后返回.响应情况GET/PUT/POST应包含所请求/创建/更新资源的位置.

    引用这本书:

    有一个皱纹.因为每个启动异步操作的请求都会使服务器创建一个新资源(如果只是一个临时资源),这样的请求既不安全也不是幂等.这意味着您不能使用GET,DELETE或(通常)PUT生成异步操作.您可以使用并且仍然尊重统一接口的唯一HTTP方法是POST.

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有