🚀

GraphQL学習メモ

2023/01/20に公開

業務でGraphQLを触ることになりましたが、全く知見がなかったためここにメモとして残します。

GraphQLとは

API用のクエリ言語

リクエストを送るために使ったライブラリ

  • GraphQL クライアント(requestメソッド)
const request = request(endpoint, gql(query), { variable });

typescriptの型定義ファイル生成

  • graphqlは型が必須のため、スキーマ定義したものの型定義が必要になります。これを自動で生成してくれるのがgraphql-codegenというライブラリになります。

※GraphQLは様々なライブラリとの組み合わせ方がネットに載っているため、比較的導入しやすいかと思います。
参考

また、GraphQLをサポートしているサービスでは、queryについて例が載っている場合が多いため、クエリを作るのも簡単だなと感じました。

GraphQLのデメリット

  • ネットワークキャッシングが使用できない
    • RestAPIのようにURLベースではなく、単一のエンドポイントのため、キャッシングができない
    • クライアント側で状態管理やキャッシュ管理のライブラリを導入する必要あり(ReactですとRedux, React queryなど)

参考

今回のメモとは関係ないですが、GraphQLの理解に役に立ったものを紹介します

Discussion