🛠️

Amplify AppSyncのGraphQLスキーマを手元でビルドする

2022/09/15に公開

以下コマンドで、Amplify AppSyncのGraphQLスキーマを手元でビルドできるので、デプロイする前にシンタックスが正しいか確認したい場合に有用。

$ amplify build

✅ GraphQL schema compiled successfully.

Edit your schema at /…/amplify/backend/api/XXX/schema.graphql or place .graphql files in a directory at /…/amplify/backend/api/XXX/schema

また、上記コマンド実行後にTransformer処理後のスキーマがamplify/backend/api/${API名}/build/schema.graphqlに出力される。シンタックスに問題がない場合でもTrasformerが出力したスキーマがエラーになってデプロイできない場合がある。そのような場合の調査に有用。

2023/02/14 追記

amplify CLIの10.7.2で、schema.graphqlにsyntax errorがあってもamplify buildを実行後に何も出力されず、成功したと思いきやよく見るとコマンドの返り値が0ではない、ということがありました。
そういう場合は、amplify api gql-compileを実行するとsyntax errorの詳細が見れてよいです。

$ amplify build      
(何も出力されないが、返り値が0じゃない)
$ amplify api gql-compile
🛑 Syntax Error: Expected Name, found )

ちなみに、Expected Name, found{}の閉じ忘れ等で発生するエラーのようです。自分の場合は、引数が空のmutationを定義しているのが原因でした。(ex: hogehoge(): HogehogePayload!)

Discussion