GraphQLとは

Facebookが開発したオープンソースのクエリー言語です。
RESTに代わるものとしても注目されています。

GraphQL | A query language for your API

メリット

RESTでは、クライアント側からURIにアクセスするだけで情報を取得できます。
情報をまとめて取得できますが、情報を選べません

スマホとPCで取得する情報を変えたい場合、同じようなAPIを複数作る必要があります。
そのまま使用して、不具合がないとしても、必要のない情報によって重くなる可能性があります。

コンポーネントで、Webアプリケーションを作成するときも、APIに複数回リクエストすることが多くなります。
負荷を気にして、それらをまとめて新しいAPIを作っても手間がかかります。

GraphQLでは、一度のリクエストで、選んだ多くの情報を取得することができます。

GraphQLはどうやって使うのか

クエリー言語と聞くと、SQLのようなイメージです。
どのように使うのでしょうか?

GraphQLは、特定の環境に依存しない言語仕様です。
それぞれのプログラムで、GraphQLを扱えるライブラリを利用することになるでしょう。

フロントエンドのクライアントでは、以下が有名です。

Relay

Reactには、GraphQLでアプリケーションを開発するJavaScriptのフレームワークが用意されています。

Apollo Client

JavaScript(Angular、React、Vueなど多数)、ネイティブプラットフォーム(iOS with Swift / Android with Java)で利用できるGraphQLクライアントです。

GraphQLを試したい

Github APIでは、Github api Explorerを利用して、GraphQLを簡単に試すことができます。

GraphQL API Explorer | GitHub Developer Guide

まとめ

まだ、参考例が少ないので、すこし心許ない気がします。
サーバーの実装は面倒らしいですが、できてしまえば、あとからの変更に耐えやすい技術ですね。
フロントの記述は増えると思いますが、バックエンドとの繋ぐ部分で、すり合わせが少なくなるのは良いと感じます。

WEB+DB PRESS Vol.104

posted with
amazlet at 18.07.30

末田 卓巳 林田 千瑛 陶山 嶺 八谷 賢 辰己 佳祐 竹澤 俊季 服部 智 藤岡 裕吾 牧 大輔 西郡 卓矢 松木 雅幸 穴井 宏幸 新 日出海 桑原 仁雄 小田 知央 ひげぽん 池田 拓司 はまちや2 竹原 大場 光一郎
大場 寧子 松館 大輝 日高 尚美 Vu Xuan Dung

技術評論社

売り上げランキング: 49,960