こんにちは!
最近は GraphQL 開発が増え、AWS Amplify が注目されるようになってきました。変更がしやすくデータアクセス志向なAPI 設計を提供してくれる GraphQL は、まさに現代のリーンスタートアップ的なプロジェクトにはぴったりな技術ですよね。
Amplify を GraphQL のクライアントとして利用する場合に、各種 GraphQL コード(Query, Mutation, Subscription)をどのように管理するのか悩みどころだと思います。
本記事では、 Amplify codegen
をデプロイ済みの AppSync のスキーマと連携させる方法を紹介します!
まず、GraphQL のエンドポイント(AppSync)の構築方法は2パターンあります。
わたし達が AppSync を構築する際は、基本的に Amplify CLI 利用せず、Cloud Formation を個別で作成し対応しています。
これは、Amplify CLI にはまだまだ不具合が多く、過去に Amplify で構築したシステムの運用で苦しんだ経験があるためです。(GSI を後から追加できない、ElasticSearch を後から追加できないなど)
amplify add codegen --apiId {appsync_graphql_id}
amplify codegen
上記のコマンドを実行すると、ローカル環境へ Query, Mutation, Subscription が生成されます。
本記事のテーマからは外れますが、プロジェクトのルートディレクトリに schema.graphql ファイルを設置することで、amplify codegen がスキーマファイルの内容を基準に各種 GraphQL ファイルをビルドしてくれます。
AppSync コンソールから都度スキーマファイルをダウンロードしローカルに落とせば、手動でのスキーマファイルの管理も可能です。
Amplify には不具合がまだまだ多く、実運用には慎重にならなければいけませんが、わたし達は Amplify フレームワークの思想が好きです。
インフラのコードを一切書かない、可能な限りインフラを意識させない、これはプロジェクト全体の開発コストを大幅に下げることができると思います。Amplify の将来にが楽しみですね。
サーバーレスでの運用・開発相談は、お気軽にお問い合わせください。