GraphQLでファイルアップロード
ファイルの内容をbase64 encodeして送信する
mutationの入力にファイルの内容を取れるようにする
code:schema.graphql
type Mutation {
uploadFile(name: String!, content: String!): UploadFilePayload
...
}
code:mutation
// $content にbase64 encodeされたファイルの内容を入れて送信する
mutation UploadFileMutation($name: String!, $content: String!) {
uploadFile(name: $name, content: $content) {
...
}
}
GraphQL multipart request specificationに従って送信する
code:schema.graphql
scalar Upload
type Mutation {
uploadFile(file: Upload!): UploadFilePayload
}
code:mutation
mutation UploadFileMutation($file: Upload!) {
uploadFile(file: $file) {
...
}
}