at backyard

Color my life with the chaos of trouble.

GraphQLを学ぶのに読んでいるドキュメント

下書きフォルダに入れっぱなしにしてしまっていた記事。
この記事にも書いてあるように最近少しずつGraphQLに触れている。

最近QiitaにもGraphQL関連で一つ投稿してみた。
Apollo Serverを勉強してみたときの備忘録。
実際にDBとつなぎ合わせてGraphQL Serverを作ってみたときの話。

qiita.com

以下、過去に書いた記事となる。


最近GraphQLを少しずつ学んでいる。
今回備忘録も兼ねて、GraphQLを学ぶ上で読んでいるドキュメントをこちらに貼っていく。

GraphQL 公式ドキュメント

まずは、基本中の基本の公式ドキュメント。
基本的なことが書かれているので、これは絶対に目を通しておいたほうが良さげ。
また、各言語ごとの実装例なども書かれているので、最初の足がかりになる。

GraphQL | A query language for your API

ちなみに公式ドキュメントのIntroductionにはどういう事が書かれているかを軽くこちらに書いておく。

Introduction to GraphQL | GraphQL

  • Introduction to GraphQL

    • GraphQLの説明
      GraphQLは、APIのためのクエリ言語であり、データに定義した型システムを使用してクエリを実行するためのサーバー側ランタイム。という説明など、実際にどういうふうに書くかなどの説明書きされている。
  • Queries and Mutations

    • データの取得に用いるQueryや、データ更新(Mutations)に関する記述が書かれている。
      GraphQLを扱う上でとても基本的な部分なので、何度も読み返すようにしている。
  • Schemas and Types

    • タイトルの通り、スキーマや型についての記述。
      これも基本的な内容なので、何度も読み返す(というかどれも基本的な内容か)。
  • Validation

    • バリデーションに関する説明。
      実際にテストコードなども用意されているため、実際にどうやってテストを書いていくかなどのイメージが付きやすい。
  • Execution

    • バリデーション後、実際にQueryが実行されるときのことが書かれている。
      resolversの記述もここに書かれている。Asynchronous resolversやTrivial resolvers 、List resolversなどいくつかの種類もあるので、それぞれ理解しておきたいところ。
  • Introspection

    • 一本踏み込んだ内容が書かれている。どの型が使用できるかを問い合わせるなど、調べたいときに利用する。
  • GraphQL Best Practices

    • タイトルの通り、GraphQLを使う上でベストプラクティスと呼ばれているやり方についての解説がある(もちろんケースバイケースではあるとも書かれている)
      HTTP, JSONから始まり、VersioningPaginationなど様々な項目について書かれているので、色々と参考になる。
  • Thinking in Graphs

    • 主にGraphQLの言語そのものに関する記述や、GraphQLを用いた設計に関する記述。
  • Serving over HTTP

    • HTTPを用いた実装に関すること
  • Authorization

    • タイトルの通り、認証に関すること
  • Pagination

    • こちらもタイトルの通り、paginationについて
  • Global Object Identification

    • object識別子を公開するとかそういう話。
      ここらへんからきつくなってきた。
  • Caching

    • キャッシュに関する記述。読んどいたほうが良いはずだが、最初からここまで読む気力はなかった。。
      設計をする上では必読。

ざっくりだが、自身の読んでみたメモは以上。
Introductionだけでもこれほどのページ数があり、結構ガッツリとした内容なので、GraphQL入門時には必須なドキュメントかと感じた。

日本語の記事ならこちらも必読→「GraphQL」徹底入門 ─ RESTとの比較、API・フロント双方の実装から学ぶ

むしろ最初にこちらを読んでもいいかもしれない。
日本語で書かれている、とーーーーっても分かりやすい記事。
GraphQLを使うとどういうメリットがあるか?実際に書くときはどういうふうに書けばよいか?graphql-rubyを使った実装の解説まである、よりどりみどりな内容。

「GraphQL」徹底入門 ─ RESTとの比較、API・フロント双方の実装から学ぶ - エンジニアHub|Webエンジニアのキャリアを考える!

もっとたくさんドキュメントを貼るつもりだったが、案外この2つでお腹いっぱいになってしまったので、ここまで。
後は実際に実装しながら感覚を掴んでいきたい。
いまのところ。Apollo周りを触ってみようかと考えている。