当前位置: 首页 > 知识库问答 >
问题:

如何让spring boot rest api发送混合内容作为响应(结构化内容加附件)

郏经纬
2023-03-14

我是REST apis中处理附件的新手。我需要生成关于文件的某些元数据,这将是一个常规的json响应,加上多个文件内容作为附件。这种混合内容可以使用Spring启动吗?或者这是一个有效的用例吗?通常情况下,我所看到的apis示例只有写入响应流的文件内容。

如果可以实现这一点,那么内容类型标题应该是什么?

我试着用这种控制器做了一段时间的实验--

@GetMap("/配置元数据")公共响应实体getConfigs(@Request estParam(name="id")字符串标识符){

...}

在这种结构中,我可以发回结构化部分,即ConfigResponse,但我不确定如何将文件内容作为附件发送。

我也尝试过将ByteArrayResource或MultipartFile作为“ConfigResponse”对象的一部分,但它们因序列化问题而失败。

这里的一些指导会很有帮助。

共有1个答案

狄子真
2023-03-14

我认为通过REST响应发送多个文件是一种不好的做法。这样做意味着您需要将文件内容序列化为有效的JSON或XML。那会是什么样子?

相反,我建议您向相应的响应对象添加下载链接,这将序列化并作为响应体的一部分执行得很好。然后,客户端可以解析链接,通过常规下载协议下载文件,而不是从JSON序列化字节码重新构建文件。

 类似资料:
  • 剩下的代码只是添加了一些额外的可视化选项。类似于我们以前与HTML元素的交互,我们可以将侦听器函数附加到切换阴影和neighborhood 多边形可见性。 让我们开始创建一个简单的方法来切换neighborhood多边形。一般来说,我们可以通过Entity.show用实体设置可见性来隐藏实体。但是,这只为单个实体设置可见性,并且我们希望一次性隐藏或显示所有的neighborhood实体。 我们可以

  • 我使用Jax-RS和jersey实现了一个web服务,我可以使用Response类向客户机发送响应代码:

  • 我试图用WebView制作一个应用程序,但是网站使用的是,但是内容(例如mp3文件)使用的是,所以Android Lollipop不会加载它,因为它是“混合内容”。我尝试使用,但它没有加载任何内容。有办法修好吗?或者我可以让所有加载的网站都使用,这样就不会显示任何错误了?

  • 所以我的问题是,我如何调整移动菜单不把内容往下推?谢谢.

  • 混合内容:页面位于'https://api.xyz.com/api/documentation'已通过HTTPS加载, 但是请求了一个不安全的样式表'http://api.xyz.com/swagger-ui-assets/swagger-ui.css?v=26ec363936a21921c9fec290e551e3eb'. 此请求已被阻止;内容必须通过HTTPS提供。 我知道如何在Laravel

  • 我在拉威尔项目工作。。我有一个问题: 混合内容:https://xxxxxx/admin/dashboard页面已通过HTTPS加载,但请求不安全的XMLHttpRequest终结点超文本传输协议://xxxxxx/admin/dashboard/order_statics/九月。此请求已被阻止;内容必须通过HTTPS提供。 我有这个。htaccess。