В настоящее время я пытаюсь внедрить серверы Apollo Federated. Однако проблема, с которой я сталкиваюсь, состоит в том, что федерация apollo не передает файлы распознавателям в федеративных службах.
Итак, в шлюзе мне нужно отправить файл в мою конечную точку отдыха, см. Ниже
/**
* ApolloServer
*/
const server = new ApolloServer({
schema,
executor: executor as any,
subscriptions: false,
plugins: [
{
//@ts-ignore
async requestDidStart({ request }) {
const { createReadStream, filename, mimetype, encoding } = await request.variables?.uploadFile
const file = createReadStream()
let formData = new FormData;
formData.append('name', filename)
formData.append('file',file, {
filename: filename,
contentType: mimetype
})
fetch('http://my-api/api/v1/file', {
method: 'post',
body: formData,
// headers: {
// "Content-Type": "multipart/form-data",
// },
}).then(res => res.json())
.then(json => console.log(json));
// console.log(filename)
// console.log(mimetype)
// console.log(encoding)
// console.log(file)
}
},
],
context: ({ req }) => {
// Get the jwtToken from the client
const token = req.headers.authorization || '' // headers SENT to gateway
return { token: token }
},
debug: ENV.NODE_ENV !== 'development' ? true : false
// formatError: err => formatError(err)
}) as any
Когда я использую этот метод. Файл пуст на моей конечной точке отдыха, которая написана в люменах. Любой совет будет очень полезен!