GraphQL は、クライアントが 欲しいデータの形を指定して、必要な分だけをまとめて取得できる API の方式です。Facebook(Meta)が開発しました。
REST API では、あちこちのデータを集めるのに複数回の呼び出しが必要だったり、逆に使わないデータまで返ってきたりすることがあります。GraphQLは、1回の問い合わせで、指定したデータだけ を過不足なく取れます。
問い合わせ例(欲しい項目だけを書く)
{
user(id: 1) {
name
posts { title }
}
}
利点と注意点は次のとおりです。
- 利点 … 取り過ぎ・取り足りないを防げる。関連データをまとめて取得できる。画面ごとの要求に柔軟。
- 注意点 … サーバー側の作りがREST より複雑になりやすく、キャッシュ の扱いにも工夫が要る。
RESTかGraphQLかは、アプリの性質しだいの選択です。データの形が複雑で、画面ごとに欲しいものが大きく違うアプリほど、GraphQLの柔軟さが生きます。