Передача запроса как есть от службы другому - PullRequest
0 голосов
/ 21 ноября 2018

У меня следующий сценарий:

  1. У меня есть служба обратной связи (Core) с удаленным методом POST / Core / {id} / upload (доступный дляpublic)

Core.remoteMethod ('upload', {принимает: [{arg: 'id', тип: 'строка', описание: 'ID экземпляра сущности.', требуется: true, http: {source: 'path'}}, {arg: 'req', тип: 'object', обязательный: true, описание: 'Объект запроса.', http: {source: 'req'}}], возвращает: {arg: 'output', тип: '$ new_EntityPostResponseProps', root: true, description: 'Возвращает экземпляры сущности, которые были обновлены.'}, description: 'Загрузить ресурс в указанный ресурс.', задокументировано: true, http: {verb: 'patch', path: '/: id / upload'}});

У меня есть другая служба обратной связи (сущности), которая имеет удаленный метод POST / Entities / {id} / upload (недоступен для общего доступа)

Entities.remoteMethod ('upload', {accept: [{arg: 'id', тип: 'string', описание: 'ID экземпляра сущности.', обязательно: true, http: {source: 'path'}}, {arg: 'user', тип: 'string', обязательно: true, описание: 'ID экземпляра пользователя.', http: {source: 'query'}}, {arg: 'files', тип: 'string',required: true, описание: 'The request.', http: {source: 'form'}}], возвращает: {arg: 'output', тип: 'Entities', root: true, description: 'Возвращает экземпляр сущностиэто было обновлено. '}, описание:' Обновить обновленный экземпляр сущности. ', задокументировано: true, http: {verb:' patch ', путь:' /: id / upload '}});

я использую loopback-connector-swagger для соединения двух служб я использую multer для обработки запросов multipart / form-data

У меня следующая проблема:

  1. я загружаю файл, используя POST / Core / {id} / upload конечная точка
  2. отправленный файлполучен в базовой службе в следующем формате:

{имя поля: 'файл', оригинальное имя: 'quickstart.mp4', кодировка: '7bit', тип mimetype: 'video / mp4', буфер:, размер: 29}

Затем я делаю JSON.stringify (файл) и отправляю в виде поля string через swagger в службу Entities, в службе Entities выполняю JSON.parse для параметра если файл имеет 100 МБ, JSON.stringify приводит к сбою сервера также имеется значительная задержка между ядром и сущностями до полной передачи файла

Как я могупередать запрос, полученный Core, без изменений и без изменений через swagger в службу Entities? (Core должен быть просто сквозной службой, я не должен делать JSON.stringify для файловых данных, я просто хочу передать его вместев службу Entities)

Если я не могу отправить запрос в неизменном виде, я решил, что могу отправить буфер данных файла напрямую в службу Entities, но я не получил его на работу, он отображается как неопределенный.

Предложения иобразцы очень ценятся!

Спасибо!

...