TL;DR
スキーマを先に定義し、そのファイルからコードを生成する開発の進め方。Code first と対になる。
なぜ必要か
GraphQL では、GraphQL Schema を先に定義し、バックエンドとフロントエンドが同じ GraphQL Schema を参照する。GraphQL Schema を両者で共有する資産にでき、特定の言語やフレームワークにも依存しない。そのため、バックエンドとフロントエンドを別のチームが並行して開発する場合に向いている。
例
NestJS は Schema first での開発に対応している(Resolvers、Interfaces)。gRPC も Protocol Buffers の定義からコードを生成する Schema first で開発する。
注意点
GraphQL Schema Language には文法上の制約が多い。GraphQL Schema のバージョン管理が煩雑になりやすく、GraphQL そのものの理解も必要になる。