从GraphQL返回文件解析

Edd*_*ang 5 file download node.js express graphql

我目前正在使用当前技术堆栈的应用程序:

后端:

  • 猫鼬

  • 表示

  • 阿波罗

  • GraphQL

前端:

  • Vuejs

  • 阿波罗

  • GraphQL

我已成功使用GraphQL将文件上传到服务器,但我坚持的是如何实现“下载”功能。使用正常的RESTApi端点,我可以使用res.download(filePath),并且可以正常工作。由于不想使用REST,因此如何使用GraphQL做到这一点。

还是在这种情况下还有其他标准要遵循?

谢谢!

gal*_*kin 34

GraphQL 使用 JSON 格式,它表示为文本格式,而不是二进制格式。

如果您不想使用 REST 下载文件,那么您应该:

  1. 在后端将您的文件内容编码为base64 字符串相关问题
  2. 将此字符串作为查询响应的一部分发送。
  3. 将编码后的 base64 字符串保存为前端的文件。相关问题

但是正确的架构设计是在 GraphQL 响应中添加文件链接并使用浏览器下载/渲染文件。