Конечная точка 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. Серверная часть попросит Мино сгенерировать временную ссылку, которую можно отправить обратно в браузер для прямого доступа.
Это верное решение для многих случаев использования.