「マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
目次 †
概要 †
- API(≒WebAPI)のために作られた、
- データクエリとデータ操作のための言語
- 保存されたデータに対してクエリを実行するランタイム
経緯 †
- 2012年にFacebookの内部で開発され、2015年に公開。
- 2018年11月7日、Linux Foundationがホストする
新たに設立されたGraphQL Foundationに移譲された。
特徴 †
なアプローチを提供
- クエリ言語の特徴
- 柔軟性と豊かな表現が可能
- 反面、複雑さを加え、シンプルなAPIには適さない可能性。
詳細 †
構成 †
- 型システム
- クエリ言語
- 実行セマンティクス
- 静的な検証
- 型イントロスペクション
機能 †
機能概要 †
- クライアントが必要なデータの構造を定義することができ、
- サーバーからは定義したのと同じ構造のデータが返される。
- 必要以上に大きなデータが返されるのを防ぐことができる。
- クエリ結果のウェブキャッシュの効果に影響を与える。
- 基本的には、
- NoSQLが対象だが、RDBMSも対象にできる。
- GraphQLが直接的にDBとやりとりするわけではない。
- まず対象となるデータをすべて、前もってデータベースから取り出しておく。
- ここから、フィルタなどの処理を行い、必要なデータだけを取り出す。
クエリと操作 †
- 読み込み(Query)
- Schemaクラスを定義する。
- Queryクラスに以下を実装。
- arguments
argumentsを生成する。
- resolve
argumentsを使ってresolveする。
- データのサブスクリプション(WebHook?で実装)
...。
サポート †
クライアント †
※ JSクライアント。サーバも同梱。
サーバ †
- 以下は、サポートがある言語。
- JavaScript、Perl、Python、Ruby、PHP
- Java、C#、Go
- Scala、Haskell、R、Clojure
- Elixir、Erlang
参考 †
Qiita †
Tags: :.NET開発, :通信技術, :.NET Standard, :.NET Core, :ASP.NET, :ASP.NET Web API