# HOW TO GRAPHQLでGraphQLの勉強をはじめました その②
ボーナスチャプターみたいのもあったのですが、動画も無かったし、英文でお勉強するのはちょっと辛かったので手を動かすチュートリアルをやることにしました。デフォルトで React + Apollo が選択された状態だったので、そのままそれで進めていきます。
# graphql-node Tutorial - Introduction
最終的な成果物はhttps://github.com/howtographql/graphql-jsにあるので参考にしてね、とのこと。
# Overview
GraphQLサーバーをスクラッチで作っていく。それにあたって使う技術は
- graphql-yoga: 全機能が揃ったGraphQLサーバー。簡単にセットアップ可能で、パフォーマンスが高く、素晴らしいDeveloper Experience。Expressとapollo-serverとgraphql-jsなどの技術を使って構築されている
- Prisma: トラディショナルなORマッパーを置き換えるもの。Prismaクライアントを使ってGraphQLリゾルバを実装したり、シンプルなデータベースアクセスをすることができる
- GraphQL Playground: いわゆる"GraphQL IDE"でGraphQL APIでクエリを投げたりミューテーションしたりということがインタラクティブに実行可能。REST APIにおけるPostmanと似ている。それに加えて以下のような機能が付いている
- … 全てのAPIオペレーションのドキュメントを自動生成してくれる
- … Query, Mutation, Subscriptionの自動補完機能(!)とシンタックスハイライトが付いたエディタ
- 簡単にAPI操作をシェアできる
# What to expect
このチュートリアルのゴールはHacker Newsクローンを作ること。まずはGraphQLサーバーの基本を学び、サーバー用のGraphQL schemaを定義してresolver functionを書く。データは全てオンメモリで保持するので何も永続化はされない。データベースレイヤーはPrismaによって提供され、Prismaクライアントによってこれから構築するGraphQLサーバーに接続する。データベースにつながったら色々やていく。signup/loginを実装する段階になったらユーザーのAPI操作の権限周りの確認もする。そして、subscriptionsを用いたリアルタイムな機能に移って、最終的にはフィルタリングやページネーションといった機能も持たせていきます、と。
では、やっていきましょう。