Skip to main content

About GraphQL - Downside



Web caching complexity


File uploading. Since GraphQL doesn’t understand files, a file uploading feature is not included in its specification. You won’t have to deal with this limitation in case of REST, as there you can POST or PUT whatever content you want to.

To allow file uploads in your GraphQL web app, there are several options:
  • using Base64 encoding. But it will make the request larger and expensive to encode/decode.
  • making a separate API endpoint just for this purpose.
  • using a library like Apollo for implementing the GraphQL multipart request specification.
uploadFileToS3: combineResolvers(
// isAuthenticated,
async (parent, args, { models }) => {
const { file } = await args
const { createReadStream, filename, mimetype, encoding } = await file
const stream = createReadStream()
const result = await uploadFileToS3(filename, stream)
return result
}
),

Comments

Post a Comment

Popular posts from this blog