TypeScriptとGraphQLで実現する型安全なAPI実装

トラック1

セッション

16:00~16:30

TypeScriptを用いたGraphQLのクライアント・サーバーの実装は、開発フローに型安全性と予測可能性をもたらしますが、その過程は必ずしも単純ではありません。本トークは、複数のプロジェクトにおいてTypeScriptとGraphQLで型安全なシステムを構築してきた経験をもとに、APIの入出力に型を付けることの重要性やそのためのベストプラクティスを解説します。 まず初めに、なぜAPIに型をつけることが重要なのかを明らかにします。その上で、型安全にするためのツールや手法を紹介します。これらのツールや手法は、エラーを未然に防ぎ、予測可能な開発フローを実現します。 さらに、クライアントとサーバーでは考慮すべき点が異なります。それぞれの視点から、どのような点を考慮すべきか、また、ベストプラクティスは何かを解説します。例えば、クライアントでは単純にGraphQLのスキーマから生成した型だけでは安全にはならず、送信するクエリから型生成する必要があります。また、GraphQLから生成したした型をコンポーネントからはどのように利用するかというのも興味深いトピックです。一方サーバーでは、Resolverが返す型とアプリケーション内部で扱うModelの型を合わせることでより安全な実装にするプラクティスや、NestJSなどのフレームワークを使ううえで考慮することなど、クライアントとサーバーでは考えることが全然違います。 このトークを通じて、TypeScriptとGraphQLを用いた開発フローの質を向上させ、開発者の生産性を高めることを目指します。

hokaccha_image
Kazuhito Hokamura

ユビー株式会社 / ソフトウェアエンジニア

Webのフロントエンドを中心にキャリアを詰んだ後、バックエンドや基盤開発などの経験を経て、最近は領域を問わずプロダクト開発から基盤開発まで何でもやる便利屋としてTypeScriptやGoを書くことが多い。個人ではAdventarというサービスの開発と運用もおこなっている。福岡在住。

github_linktwitter_link