コンテンツにスキップ

GraphQL

出典: フリー百科事典『ウィキペディア(Wikipedia)』

これはこのページの過去の版です。Tarepan (会話 | 投稿記録) による 2020年5月27日 (水) 06:19個人設定で未設定ならUTC)時点の版 (整理: 定義の冗長な表現を削除)であり、現在の版とは大きく異なる場合があります。

GraphQL
開発元 Facebookとコミュニティ
初版 2015年 (2015)
最新版
2018年6月[1]
リポジトリ github.com/graphql/graphql-spec
プログラミング
言語
JavaJavaScriptRubyScalaなど
対応OS クロスプラットフォーム
ライセンス 3条項BSDライセンス
公式サイト graphql.org
テンプレートを表示

GraphQL(グラフQL)はAPI向けに作られたクエリ言語およびランタイムである[2]

ウェブAPIの開発に、RESTやその他のWebサービスと比較して、効率的、堅牢、フレキシブルなアプローチを提供する。GraphQLでは、クライアントが必要なデータの構造を定義することができ、サーバーからは定義したのと同じ構造のデータが返される。したがって、必要以上に大きなデータが返されるのを防ぐことができる。ただし、これはクエリ結果のウェブキャッシュ英語版の効果に影響を与える。また、柔軟性と豊かな表現が可能なクエリ言語は複雑さを加えるため、シンプルなAPIには適さない可能性もある[3][4][5]。GraphQLは、型システム、クエリ言語、実行セマンティクス、静的な検証、型イントロスペクション英語版から構成される。

GraphQLは、読み込み、書き込み(ミューテーション)、データのサブスクリプション(リアルタイム更新機能で、一般にはWebHooks英語版で実装される)をサポートする[6]

主要なGraphQLのクライアントとしては、Apollo Client[7]とRelay[8]がある。GraphQLサーバーは複数の言語で利用可能であり、Haskell、JavaScript[9]、Perl[10]、Python[11]、Ruby、Java、C#、Scala、Go、Elixir[12]、Erlang、PHP、R、Clojureで書かれたものがある。

歴史

GraphQLは、2012年にFacebookの内部で開発され、2015年に公開された[13]。2018年11月7日、GraphQLプロジェクトは、Facebookから非営利のLinux Foundationがホストする新たに設立されたGraphQL Foundationに移譲された[14][15]。2012年以来、GraphQLの利用数は、GraphQLの作者のLee Byronが想定したとおりのスケジュールに正確に従って増加している[16] 。Byronの目標は、GraphQLをWebプラットフォーム全体で利用されるようにすることである。

2018年2月9日、GraphQL Schema Definition Language(SDL)が仕様の一部となった[17]

関連項目

出典

  1. ^ GraphQL June 2018 Release Notes”. 2019年3月26日閲覧。
  2. ^ GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. https://graphql.org/
  3. ^ “GraphQL vs REST: Overview” (英語). Phil Sturgeon. (2017年1月24日). https://phil.tech/api/2017/01/24/graphql-vs-rest-overview/ 2018年11月25日閲覧。  {{cite news}}: |date=の日付が不正です。 (説明)
  4. ^ “Why use GraphQL, good and bad reasons” (英語). Honest Engineering. (2018年8月4日). https://honest.engineering/posts/why-use-graphql-good-and-bad-reasons 2018年11月26日閲覧。 
  5. ^ GraphQL Fundamentals”. Howto GraphQL. 2018年7月4日閲覧。
  6. ^ GraphQL”. facebook.github.io. Facebook. 2018年7月4日閲覧。
  7. ^ Introduction”. Apollo GraphQL Docs. 2019年10月19日閲覧。
  8. ^ Relay · A JavaScript framework for building data-driven React applications” (英語). relay.dev. 2019年10月19日閲覧。
  9. ^ A reference implementation of GraphQL for JavaScript: graphql/graphql-js, GraphQL, (2019-10-19), https://github.com/graphql/graphql-js 2019年10月19日閲覧。 
  10. ^ GraphQL - Perl implementation of GraphQL - metacpan.org”. metacpan.org. 2019年10月19日閲覧。
  11. ^ Graphene”. graphene-python.org. 2017年6月18日閲覧。
  12. ^ Absinthe: The GraphQL toolkit for Elixir”. 2018年7月19日閲覧。
  13. ^ GraphQL: A data query language”. 2019年10月19日閲覧。
  14. ^ “Facebook’s GraphQL gets its own open-source foundation” (英語). TechCrunch. https://techcrunch.com/2018/11/06/facebooks-graphql-gets-its-own-open-source-foundation/ 2018年11月7日閲覧。 
  15. ^ “The Linux Foundation Announces Intent to Form New Foundation to Support GraphQL - The Linux Foundation” (英語). The Linux Foundation. (2018年11月6日). https://www.linuxfoundation.org/press-release/2018/11/intent_to_form_graphql/ 2018年11月7日閲覧。 
  16. ^ Anthony. “Is GraphQL Moving Toward Ubiquity?”. NordicAPIs. 2019年10月19日閲覧。
  17. ^ [RFC GraphQL Schema Definition Language (SDL) by leebyron · Pull Request #90 · graphql/graphql-spec]” (英語). GitHub. 2019年10月19日閲覧。

外部リンク