哪种 LiftResponse class 适合返回基于 XML 的文件格式?

Which LiftResponse class is appropriate for returning an XML based file format?

我有一个可以动态生成 Gephi 文件的 Lift 应用程序。 Gehpi 本机格式基于 XML。目前的计划是在客户端的 Gephi 中下载并打开文件,而不是在浏览器中 processed/displayed。

我查看了 LiftResponse 子classes,似乎 StreamingResponse 或 PlainTextResponse 都可能工作(我已经用 StreamingResponse 制作了一个简单的原型)。虽然有专门的 JsonResponse,但我没有看到 XML 特定的响应。

选择一个 class 相对于另一个有哪些优点和缺点?使用哪个更合适?还是在这种情况下它们同样好?

JsonResponsePlainTextResponse 是最终 return 和 InMemoryResponse 的帮手。可以分别查看源码here and here。您会注意到 PlainTextResponse 设置了 "text/html" 的 mimetype,这对于 XML.

不一定正确

还有一个 XmlResponse type that you can investigate here,这可能就是您要找的。它也是 returns 一个 InMemoryResponse,顾名思义,假设您的整个对象在发送给客户端之前都在内存中。

A StreamingResponse 更适合较大的文件和对象,它需要一个 Stream 并将该流的块读入内存并发送它们,重复该过程直到完成 - 所以你不需要将整个结构保存在内存中。

两者都应该适合你,只是你正在处理的数据大小以及你如何处理它的问题。