微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从服务器下载文件的GraphQL / Apollo应用程序

如何解决从服务器下载文件的GraphQL / Apollo应用程序

我对GraphQL有点陌生,这个问题属于“不可能这么难。我必须缺少一些东西。”

我有一个相当标准的GraphQL / Apollo / React应用程序,分为客户端和服务器。客户端进行API调用并从服务器取回数据,一切工作都很好。客户端甚至可以将文件上传到服务器。但是,我现在需要服务器流回保存在磁盘上的文件。就是这样。

这是“我必须丢失某些东西”部分。我在文档和Stackoverflow上看到的所有内容都是一些变化,包括文件从服务器并通过GraphQL查询作为base64终止的字符串推送回去,然后在客户端上做一些非常棘手的事情,通常涉及隐藏的href标记和模拟点击。为此,我说:“什么?”

严重。服务器知道如何在磁盘上找到文件。客户端需要向用户显示一个按钮,使他们可以单击以下载文件。而已。每种其他语言的每个其他框架都有一种简便的方法。有人可以告诉我我在这里缺少的非常简单的东西吗?

谢谢, 亚历克斯

解决方法

您所缺少的是GraphQL确实不应该用于此目的。

虽然GraphQL本身does not specify a specific format for serializing responses,但事实上的格式是JSON。而将文件获取到JSON响应中的唯一方法是将其序列化为字符串。

如果要提供静态内容,则应设置Nginx,Apache或为此而构建的其他Web服务器。另外,如果您已经在使用某些现有的Web服务器库(如Express),则它很可能也具有用于提供静态内容的工具。

仅仅因为您具有GraphQL端点并不一定意味着它应该是客户端与后端通信的唯一方式。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。