こんにちは、Webエンジニアの山本です。将来の夢はスパイダーマンです。 先日SPACEMARKET EVENTというサービスのバックエンドAPIをRESTful APIからGraphQL APIに完全移行しました。 ※GraphQLとはなんぞやという方はgfxさんの記事が非常に詳しいです。 以前は参照系がGraphQL、更新系がRESTと役割を分けていたのですが、この移行により更新系もGraphQLで行う形になりました。 APIを移行する上での難点の一つが画像(等ファイル)のアップロードです。 GraphQLではサーバーへのデータの受け渡しには一般的にJSONが使用されます。 htmlのform submitやjsのFormDataオブジェクトを使用するなどエンコードタイプがmultipart/form-dataであればバイナリデータを送信できますが、JSONではバイナリデータを扱うことが