Конечная точка GraphQL для загрузки файла

Можно ли запустить загрузку файла в браузере с конечной точки GraphQL на apollo-server-express приложение?

У меня конечная точка написана в стандартном экспрессе app.get функция (см. ниже), но я хотел бы использовать контекст GraphQL для загрузки файла, и поэтому мне интересно, возможно ли вызвать загрузку с конечной точки GraphQL.

Вот простой пример того, что у меня есть на экспресс-конце в app.get функция:

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

Любая помощь мне бы очень понравилась. Спасибо!

2 ответа

Да, но для этого вам потребуется создать собственную конечную точку. Вы не можете использовать существующую конечную точку, которую используете для отправки запросов. Используя пользовательскую конечную точку, вы должны добавить промежуточное программное обеспечение и обработать данные в буфер или любой другой формат, который вам нужен. Но это не рекомендуется. Это снова станет еще одной конечной точкой, вместо которой вы можете написать API для этого (в конце концов, Graphql построен в основном на фокусе одной конечной точки).

Боштьян Циган упоминает здесь некоторые решения и подробно рассказывает об использовании GraphQL в качестве прокси-сервера с Minio. Серверная часть попросит Мино сгенерировать временную ссылку, которую можно отправить обратно в браузер для прямого доступа.

Это верное решение для многих случаев использования.

Другие вопросы по тегам