GraphQL
![]() | |
開発元 | Facebookとコミュニティ |
---|---|
初版 | 2015年 |
最新版 |
2018年6月[1]
|
リポジトリ |
github |
プログラミング 言語 | Java、JavaScript、Ruby、Scalaなど |
対応OS | クロスプラットフォーム |
ライセンス | 3条項BSDライセンス |
公式サイト |
graphql |
GraphQL(グラフQL)は、APIのために作られた、データクエリとデータ操作のための言語と、保存されたデータに対してクエリを実行するランタイムである[2]。GraphQLは、2012年にFacebookの内部で開発され、2015年に公開された[3]。2018年11月7日、GraphQLプロジェクトは、Facebookから非営利のLinux Foundationがホストする新たに設立されたGraphQL Foundationに移譲された[4][5]。2012年以来、GraphQLの利用数は、GraphQLの作者のLee Byronが想定したとおりのスケジュールに正確に従って増加している[6] 。Byronの目標は、GraphQLをWebプラットフォーム全体で利用されるようにすることである。
ウェブAPIの開発に、RESTやその他のWebサービスと比較して、効率的、堅牢、フレキシブルなアプローチを提供する。GraphQLでは、クライアントが必要なデータの構造を定義することができ、サーバーからは定義したのと同じ構造のデータが返される。したがって、必要以上に大きなデータが返されるのを防ぐことができる。ただし、これはクエリ結果のウェブキャッシュの効率については明らかではない。また、柔軟性と豊かな表現が可能なクエリ言語は複雑さを加えるため、シンプルなAPIには適さない可能性もある[7][8][9]。GraphQLは、型システム、クエリ言語、実行セマンティクス、静的な検証、型イントロスペクションから構成される。
GraphQLは、読み込み、書き込み(ミューテーション)、データのサブスクリプション(リアルタイム更新機能で、一般にはWebHooksで実装される)をサポートする[10]。
主要なGraphQLのクライアントとしては、Apollo Client[11]とRelayがある[12]。GraphQLサーバーは複数の言語で利用可能であり、Haskell、JavaScript[13]、Perl[14]、Python[15]、Ruby、Java、C#、Scala、Go、Elixir[16]、Erlang、PHP、R、Clojureで書かれたものがある。
2018年2月9日、GraphQL Schema Definition Language(SDL)は仕様の一部となった[17]。
関連項目
出典
- ^ “GraphQL June 2018 Release Notes”. 2019年3月26日閲覧。
- ^ “GraphQL: A query language for APIs.”. 2019年10月19日閲覧。
- ^ “GraphQL: A data query language”. 2019年10月19日閲覧。
- ^ “Facebook’s GraphQL gets its own open-source foundation” (英語). TechCrunch 2018年11月7日閲覧。
- ^ “The Linux Foundation Announces Intent to Form New Foundation to Support GraphQL - The Linux Foundation” (英語). The Linux Foundation. (2018年11月6日) 2018年11月7日閲覧。
- ^ Anthony. “Is GraphQL Moving Toward Ubiquity?”. NordicAPIs. Template:Cite webの呼び出しエラー:引数 accessdate は必須です。
- ^ “GraphQL vs REST: Overview” (英語). Phil Sturgeon 2018年11月25日閲覧。
- ^ “Why use GraphQL, good and bad reasons” (英語). Honest Engineering. (2018年8月4日) 2018年11月26日閲覧。
- ^ “GraphQL Fundamentals”. Howto GraphQL. 2018年7月4日閲覧。
- ^ “GraphQL”. facebook.github.io. Facebook. 2018年7月4日閲覧。
- ^ “Apollo Client: The flexible, production ready GraphQL client for React, and all JavaScript and native apps”. Template:Cite webの呼び出しエラー:引数 accessdate は必須です。
- ^ “Relay: A JavaScript framework for building data-driven React applications”. Template:Cite webの呼び出しエラー:引数 accessdate は必須です。
- ^ “GraphQL js”. Template:Cite webの呼び出しエラー:引数 accessdate は必須です。
- ^ “GraphQL - Perl implementation of GraphQL”. Template:Cite webの呼び出しエラー:引数 accessdate は必須です。
- ^ “Graphene”. graphene-python.org. 2017年6月18日閲覧。
- ^ “Absinthe: The GraphQL toolkit for Elixir”. 2018年7月19日閲覧。
- ^ “GraphQL SDL included in Github repository”. Template:Cite webの呼び出しエラー:引数 accessdate は必須です。