我正在尝试将一些转发ByteString
回客户端(浏览器)。客户端将不知道所请求文档的内容类型,因此我试图将适当的内容类型响应发送回客户端。该文档可以是图像或pdf或word文档等。
例如,客户端将请求/document?id=55
,服务器将使用适当的内容类型和关联的ByteString
.
我按照这里的例子:我为图像创建了一些东西。
data IMAGE
instance Accept IMAGE where
contentType _ = "image" M.// "jpeg"
instance MimeRender IMAGE LBS.ByteString where
mimeRender _ = id
挑战是客户端不会发送带有某些特定标头的请求,因此我无法像在此处Accept:
完成的那样对适当的 Mime 类型做出反应。另外,上述内容仅适用于图像(假设浏览器会推断出我发回的内容),但不适用于,等。png
jpeg
pdf
docx
我考虑了一个参数化类型,例如MyDynamicContent String
,我将在运行时传入内容类型,但我不确定如何声明我的 API,即我将使用什么来代替'[JSON]
. 甚至不确定这样的事情是否可能,因为这些示例只是一个简单的数据类型。
所以我的问题是,如果我想发送一些ByteString
作为响应并Content-Type
动态设置标题,那么使用它的最佳方法是什么servant
更新:我打开了一个问题