2021年秋現在、HasuraやAWS Amplifyを使うことによって、開発者の手数を可能な限り減らしてお手軽にGraphQL APIをフロントエンドから利用できるようになってきました。
これ自体は開発者にとっては大変喜ばしいことであり、利用できるシーンでは開発の初速を出すことができたり、プロトタイプングにおいて価値を発揮してくれたりすることでしょう。
ただ、HasuraのようにDBとAPIが密結合であったり、AWS Amplifyのように特定のクラウドサービスに依存することを避けたいケースもあるかもしれません。
中長期的に運用することが明確なシステムのAPIサーバーをコントローラブルにGraphQLで実装したいときの選択肢の一つがApollo Serverを使用することです。
Apollo Serverを使用することでTypeScriptで型安全にロジックを記述してGraphQLサーバーを実装することはできそうです。あとはDBに対しても型安全に操作を行えると嬉しいですよね。
その役割を担ってくれるのがPrismaです。
この本ではApollo ServerとPrismaを使ってTodoアプリのAPIを構築することでそれぞれの基礎的な使用方法を学んでいきます。
実装ができたら実際にGCPのCloud Runにデプロイするところまでやります。
DBにはHerokuのPostgresを使用するので基本的にはほぼ無料(かかったとしても僅かな料金)で最後まで読みすすめることが可能です。
また、オマケですが、今回実装するAPIサーバー用のフロントエンドのアプリケーションも動く状態のものを用意してあるので、開発したAPIサーバーがフロントからどのように使われるのかまで知りたい方はぜひみていただければと思います。
解説に使用するリポジトリ
バックエンド
フロントエンド