マイクロソフト系技術情報 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。

目次

概要

  • 簡単ではない(≒苦行)らしい。
  • API(≒WebAPI)のために作られた、
    • データクエリとデータ操作のための言語
    • 保存されたデータに対してクエリを実行するランタイム

経緯

  • 2012年にFacebookの内部で開発され、2015年に公開。
  • 2018年11月7日、Linux Foundationがホストする
    新たに設立されたGraphQL Foundationに移譲された。

特徴

  • RESTやその他のWebサービスと比較して、
    • 効率的
    • 堅牢
    • フレキシブル

なアプローチを提供

  • クエリ言語の特徴
    • 柔軟性と豊かな表現が可能
    • 反面、複雑さを加え、シンプルなAPIには適さない可能性。

詳細

構成

  • 型システム
  • クエリ言語
  • 実行セマンティクス
  • 静的な検証
  • 型イントロスペクション

機能

機能概要

  • クライアントが必要なデータの構造を定義することができ、
  • サーバーからは定義したのと同じ構造のデータが返される。
    • 必要以上に大きなデータが返されるのを防ぐことができる。
    • クエリ結果のウェブキャッシュの効果に影響を与える。
  • 基本的には、
    • NoSQLが対象だが、RDBMSも対象にできる。
    • GraphQLが直接的にDBとやりとりするわけではない。
    • まず対象となるデータをすべて、前もってデータベースから取り出しておく。
    • ここから、フィルタなどの処理を行い、必要なデータだけを取り出す。

クエリと操作

  • 読み込み(Query)
    • Schemaクラスを定義する。
    • Queryクラスに以下を実装。
      • arguments
        argumentsを生成する。
      • resolve
        argumentsを使ってresolveする。
  • 書き込み(Mutation)
    ...。
  • データのサブスクリプション(WebHooks?で実装)
    ...。

サポート

クライアント

  • Apollo
  • Relay

※ JSクライアント。サーバも同梱。

サーバ

  • Apollo、Relay以外は、
    個別のライブラリとして提供されているらしい。
  • 以下は、サポートがある言語。
    • 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


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-06-30 (火) 10:41:07 (90d)