热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

RESTfulAPI-批量操作的分块响应

如何解决《RESTfulAPI-批量操作的分块响应》经验,为你挑选了1个好方法。

我正在研究类似REST的API,它将支持某些资源上的批量操作.由于完成此类请求可能需要一些时间,因此我希望在分块响应中返回操作的状态.媒体类型应为JSON.如何使用JAX-RS?

(我知道有StreamingOutput,但它需要手动序列化数据.)



1> lefloh..:

Chunked Transfer编码通常用于发件人开始传输数据时内容长度未知的情况.接收器可以处理每个块,而服务器仍在生成新的块.这意味着服务器正在发送整个时间.我不认为发送I'm still working|I'm still working|I'm still working|块有太大意义,据我所知,大多数应用服务器透明地处理分块传输编码.当响应大于特定大小时,它们会自动切换.

用例的常见模式如下所示:

客户端触发批量操作:

POST /batch-jobs HTTP/1.1

服务器创建描述作业状态的资源,并在Location头中返回URI:

HTTP/1.1 202 Accepted
Location: /batch-jobs/stats/4711

客户端检查此资源并收到200:

GET /batch-jobs/stats/4711 HTTP/1.1

此示例使用JSON,但您也可以返回纯文本或添加缓存标头,告诉客户端他应该等待下一轮询的时间.

HTTP/1.1 200 OK
Content-Type: application/json

{ "status" : "running", "nextAttempt" : "3000ms" }

如果作业完成,服务器应回答303和他创建的资源的URI:

HTTP/1.1 303 See other
Location: /batch-jobs/4711


推荐阅读
author-avatar
高朗1_114
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有