如何发送文件来响应graphql查询? (从服务器向客户端发送csv文件)

时间:2018-02-26 20:46:25

标签: graphql react-apollo

我想在图形查询的休息中发送一个csv文件。 我正在使用Apollo服务器和Apollo客户端以及Reactjs。 (从服务器向客户端发送csv文件)

任何人都可以告诉我如何实现它?

2 个答案:

答案 0 :(得分:1)

仅当您想在前端下载文件时,Graphql才响应JSON格式 您可以实施另一个应用程序,例如express,从该应用程序上载文件或从中下载文件。

答案 1 :(得分:0)

我有一个同样的问题,我不确定它是否可以通过graphql的响应来解决它的好方案,因为GraphQL规范说,查询正在生成POST操作,并且解析器尝试按定义的类型或普通类型(如String,Int)进行响应,所以有很多上传文件的解决方案,因此我仍然想找一些东西,也许可以选择创建File这样的特殊类型:

source:gql.schema
type Query {
 getFile(id:Int): File!
}

但是对我来说,它仍然有点容易过载的问题。

我的计划B是像通常那样创建简单的终结点,并且不发送任何复杂的文件

无论如何,为什么它不能很好地处理api服务器的下载? 在巨大的流量和许多下载中,其糟糕的计划无法处理任何api服务器的下载,从而导致cpu过载,因此您应通过自己的选项实现暂停并继续下载,或者当用户断开连接时。有一些解决方案可以将其在服务器/代理和插件下移至nginx,apache等。考虑使用一次下载链接+ jwt令牌的小寿命生成一次链接,然后将用户重定向到该链接,然后用户开始下载