GraphQL のメリット・デメリットが話題なので推してる人として考えてることを書いてみる。技術には優劣はなく、フィットするシーンや技術者の信念と共振するかどうかだけであると思ってるのでそこのところよろしく
他と比べて
ぶっちゃけ言うと推してはいるが元は消去法的にである。他のツールではスキーマ管理の徹底と開発生産性のバランスが合わなかった
REST API
- スキーマを管理、強制する術が弱い
- Open APIが代表的だが、スキーマの定義をコードとは別に作る構成。疎結合なメリットもあるかもしれないが、実態との差が生まれる構造
- スキーマの差を発見するためのテストコード書くのは本末転倒感あった。テストコードあっても発見できないケースがあり漏れる
- Open API Client使えばまだマシ。だけどその徹底はレビュー等でしかできない
- APIがすでにある→ Open APIでドキュメントを整備する、というケースが、自分の生きてきたタイミング上多くあったというバイアスはある
gRPC Web
- protobuf使う副作用がキツい
- ブラウザ単体でデバッグ出来なくなりWeb FEの開発中に面倒
- protobufの自動生成コードがJS/TSっぽくなく書きにくかった
この辺りの消去法が理由でGraphQL推しに落ち着いた
何が好きかで語る
GraphQLのメリット、他の構成のマイナスポイントの裏返しや純粋に良い点を書くとこうなるのかな
- API側がスキーマに準拠するのが強制される
- 技術の構成上スキーマに合わせないと成立しない
- 自作でリゾルバ作って緩くする人もおらんやろう
- 一定以下の労力でAPIリクエストが絡む動作のデバッグ、トレースができる
- gRPC Webよりはだいぶマシ
- とはいえ Network が query だらけになるので拡張の助けがあると楽になる
- クエリであることで、どこで何を参照してるか分かる
- とりあえずで全部取得ってしてたらそうはいかないが、影響範囲がありそうくらいは分かる
- そうすると拡張、削除時にバグを静的解析できるチャンスがある
- さらに高度なこともできるそう(よくわかってない)
GraphQLですが、
— syumai (@__syumai) 2026年1月31日
・Fragmentで、各UIコンポーネント(および関数)が外部由来のどのデータに依存するかを書ける
・Fragment Maskingを使えば、特定のコンポーネントの依存にのみ含まれるデータを、バケツリレーの途中で使われるのを防げる
という点で快適すぎるので、なるべくこれありの生活をしたい
- こういった硬め、静的解析しやすい構成はAgentic Codingと相性がいい。GraphQLに限らず
GraphQLよりよいものがありえるのではないか、というのはまあそうだと思うんだけど、一方で agentic coding 時代は「自動テストさえできるなら何とでもなる」みたいなところがあるから、agentic codingと相性はいいと思うんだよな。
— FUJI Goro (@__gfx__) 2026年2月1日
ただ、この辺りがバランスをとして求めないプロダクト、スピードを優先する事業状況もあるのも理解できる。そうするとオーバースペック感があるし、バックエンドの負担が高くなるだけなのも理解できる。
2026/02/03追記
こういうアプローチもあると知った。End-to-End Type Safety, First-Class OpenAPI (= Schemaと理解), Contract-First Development が実現できるってのは期待。


![作って学ぶFigma入門[完全版] ステップ・バイ・ステップで身につくWeb/UIデザインの基本 作って学ぶFigma入門[完全版] ステップ・バイ・ステップで身につくWeb/UIデザインの基本](https://m.media-amazon.com/images/I/51I2VNGKttL._SL500_.jpg)


