REST API单一请求 - 多个响应

时间:2017-10-14 18:15:59

标签: java rest imagemagick jax-rs

我正在JAX-RS 2.0中编写REST API,JDK 8用于以下要求

POST API / server / fileUpload / (多部分表格数据),我需要在此处发送一个大型.AI(Adobe Illustrator)文件。

服务器,获取文件并返回状态202(已接受),确认文件传输成功发生。 (从端点到服务器)

现在在服务器上,我使用Java + Imagemagik将.AI文件(20-25 MB文件)转换为小型JPG缩略图,放在Apache HTTP Server上并共享位置(如http://happyplace/thumbnail0987.jpg)< / p>

现在,第二个响应应来自具有状态200的服务器和缩略图URL

使用一个REST API是否可行? (异步/相似)

或者我应该将其拆分为2个API调用,请建议

5 个答案:

答案 0 :(得分:1)

没有。在http中,一个请求获得一个响应。客户端必须发送第二个请求以获得第二个响应。

答案 1 :(得分:1)

请检查:
https://en.wikipedia.org/wiki/List_of_HTTP_status_codes

http://dret.typepad.com/dretblog/2007/11/one-request-mul.html

<强>要点:
您应该返回临时响应(MPA在您的情况下似乎是一个好的响应),而不是202(这是最终响应)。处理完成后,您应该发送一些最终答复。

答案 2 :(得分:1)

您可以为此使用WebSockets。

答案 3 :(得分:0)

如果您从脚本调用,则调用将是异步的,您可以在收到响应时处理缩略图URL。当你从java程序调用时,我建议在不同的线程上运行它,如果执行不是顺序的,那么(可以在不获取URL的情况下执行剩余行)。如果代码的剩余部分需要url,则可以进行一次调用并等待响应,然后执行剩余的代码。

答案 4 :(得分:0)

对于两种情况,您需要使用不同的API。一个用于显示文件上传状态,另一个用于显示所有文件转换和操作。

在客户端,第二个请求必须是第一个请求的回调。