Возврат файла из GraphQL. - PullRequest
0 голосов
/ 04 марта 2019

В настоящее время я работаю над приложением с текущим техническим стеком:

Бэкэнд:

  • Mongoose

  • Экспресс

  • Apollo

  • GraphQL

Внешний интерфейс:

  • Vuejs

  • Apollo

  • GraphQL

Мне удалось загрузить файлы на сервериспользуя GraphQL, я застрял в том, как реализовать функцию загрузки.С нормальной конечной точкой RESTApi я могу использовать res.download (filePath), и это работает.Как мне сделать это с GraphQL, так как я не хочу использовать REST.

Или есть какой-то другой стандарт в этом сценарии?

Спасибо!

1 Ответ

0 голосов
/ 07 марта 2019

GraphQL использует формат JSON, который представляет собой текстовый формат, а не двоичный.

Если вы не хотите загружать файлы с помощью REST, вам следует:

  1. Кодировать вашсодержимое файла в base64 string on BE. Связанный вопрос
  2. Отправьте эту строку как часть ответа на запрос.
  3. Сохраните закодированную строку base64 в виде файла на FE. Смежный вопрос

Но правильный дизайн архитектуры - добавить ссылку на файл в ответ GraphQL и использовать браузер для загрузки / рендеринга файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...