哪种 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 相对于另一个有哪些优点和缺点?使用哪个更合适?还是在这种情况下它们同样好?
JsonResponse
和 PlainTextResponse
是最终 return 和 InMemoryResponse
的帮手。可以分别查看源码here and here。您会注意到 PlainTextResponse
设置了 "text/html" 的 mimetype,这对于 XML.
不一定正确
还有一个 XmlResponse
type that you can investigate here,这可能就是您要找的。它也是 returns 一个 InMemoryResponse
,顾名思义,假设您的整个对象在发送给客户端之前都在内存中。
A StreamingResponse
更适合较大的文件和对象,它需要一个 Stream 并将该流的块读入内存并发送它们,重复该过程直到完成 - 所以你不需要将整个结构保存在内存中。
两者都应该适合你,只是你正在处理的数据大小以及你如何处理它的问题。
我有一个可以动态生成 Gephi 文件的 Lift 应用程序。 Gehpi 本机格式基于 XML。目前的计划是在客户端的 Gephi 中下载并打开文件,而不是在浏览器中 processed/displayed。
我查看了 LiftResponse 子classes,似乎 StreamingResponse 或 PlainTextResponse 都可能工作(我已经用 StreamingResponse 制作了一个简单的原型)。虽然有专门的 JsonResponse,但我没有看到 XML 特定的响应。
选择一个 class 相对于另一个有哪些优点和缺点?使用哪个更合适?还是在这种情况下它们同样好?
JsonResponse
和 PlainTextResponse
是最终 return 和 InMemoryResponse
的帮手。可以分别查看源码here and here。您会注意到 PlainTextResponse
设置了 "text/html" 的 mimetype,这对于 XML.
还有一个 XmlResponse
type that you can investigate here,这可能就是您要找的。它也是 returns 一个 InMemoryResponse
,顾名思义,假设您的整个对象在发送给客户端之前都在内存中。
A StreamingResponse
更适合较大的文件和对象,它需要一个 Stream 并将该流的块读入内存并发送它们,重复该过程直到完成 - 所以你不需要将整个结构保存在内存中。
两者都应该适合你,只是你正在处理的数据大小以及你如何处理它的问题。