【问题标题】:GraphQL endpoint for file download用于文件下载的 GraphQL 端点
【发布时间】:2019-03-20 10:09:34
【问题描述】:

是否可以通过apollo-server-express 应用程序上的 GraphQL 端点在浏览器中触发文件下载?

我有一个用标准 express app.get 函数编写的端点(见下文),但我想利用 GraphQL 上下文进行文件下载,所以我想知道是否可以从 GraphQL 下载端点。

这是我在 app.get 函数中的 express 端的一个简单示例:

app.get('/download-batch/:batchId', async (req, res) => {
  res.send(new Buffer('test'));
});

任何帮助我都会非常感激。谢谢!

【问题讨论】:

  • 您好,我也有从 graphql 端点下载 csv 的相同要求。你有解决办法吗?
  • @AshishPanchal 我坚持这种做事路线,只是通过普通的 Express.js 路线,但我最近没有回来重新审视它。

标签: graphql apollo-server


【解决方案1】:

是的,但您需要为此创建一个自定义端点。您不能使用用于发出请求的现有端点。 使用自定义端点,您必须添加一个中间件并将数据处理到缓冲区或您需要的任何格式中。但不建议这样做。这将再次成为一个端点,而不是您可以编写一个 API 来服务它。(毕竟 graphql 主要是建立在单个端点的焦点上)。

【讨论】:

    【解决方案2】:

    Boštjan Cigan 提到了here 一些解决方案,并提供了有关使用 GraphQL 作为 Minio 代理的详细信息。后端会要求 Mino 生成一个临时链接,该链接可以发送回浏览器直接访问。

    这是适用于许多用例的有效解决方案。

    【讨论】:

      猜你喜欢
      • 2020-05-11
      • 2016-03-24
      • 2018-06-22
      • 2012-10-10
      • 1970-01-01
      • 1970-01-01
      • 2019-10-11
      • 2021-07-31
      • 2020-10-06
      相关资源
      最近更新 更多