🛠️
Amplify AppSyncのGraphQLスキーマを手元でビルドする
以下コマンドで、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