[AWS AppSync] サンプルスキーマを使った API を作成しコンソールからクエリを発行してみる
こんにちは、菊池です。
先日、フルマネージドなGraphQLサービス、AWS AppSyncが正式リリースされました。
AppSyncについては、上記の記事が詳しいので、合わせて参照ください。公開と同時に、東京リージョンでも利用することが可能になっています。
私も正直、GraphQLってどんなもんなん?ってところでしたので、公開されているサンプルスキーマを使ってAPIを作成し、実際に触りながら理解を深めていきたいと思います。実際に公開するAPIを使うためには、それにあわせたクライアントアプリケーションも必要となりますが、マネジメントコンソールからもクエリを発行することができますので、今回はそれを使って試していきます。
サンプルスキーマを使ったGraphQL APIの操作
サンプルスキーマを使ったGraphQL APIの作成
まずは、サンプルスキーマを使ってAPIを公開します。
コンソールから、[Create API]を選択します。
APIの名前(任意)を入れ、今回は[Sample schema]を選択します。あとはそのまま、画面下までスクロールして[Create]。
すると、これだけでAPIが作成できてしまいます。エンドポイントURLと、認証コードが発行されています。これらは、後からカスタマイズも可能です。
クライアントアプリを開発するためのリポジトリや、エンドポイントの情報が入ったJSONファイルもダウンロードできます。
作成されたAPIの[Data Sources]をみると、DynamoDBのテーブルが作成されていることがわかります。
DynamoDBのコンソールにもテーブルが作成されています。
クエリの実行
それでは、GraphQL APIにクエリを発行して動作をみてみたいと思います。公式ドキュメントを参考に、実行していきます。
コンソールの[Queries]を開くと、クエリが実行できるようになっています。
データの追加
まずはデータを追加します。muntation
で以下のように入力して実行します。後ろのカッコで、レスポンスのデータを指定することができます。
mutation { createEvent( name:"My first GraphQL event" where:"Day 1" when:"Friday night" description:"Catching up with friends" ){ id name where when description } }
コンソールの右側に、レスポンスが表示されます。
これでイベントデータが1件、保存されました。DynamoDBで、テーブル:AppSyncEventTable-xxxxxxx
を参照すると、アイテムが追加されていることが確認できます。
データの参照
続いて、イベントを参照してみます。getEvent
でキーとなるid
を指定して実行します。
query { getEvent(id:"a5a6d6b0-ece3-480a-8df1-950b0663776d"){ name where description } }
先ほど追加したイベントが取得できました。
getAllEvents
では、イベントのリストを取得することもできます。
query getAllEvents { listEvents{ items{ id name when } } }
データの削除
イベントを削除する、deleteEvent
もスキーマに定義されていますので試してみます。キーにid
を指定して実行。
mutation { deleteEvent( id:"a5a6d6b0-ece3-480a-8df1-950b0663776d" ){ id name where when description } }
実行結果です。
確認のため、getAllEvents
で取得してみます。
query getAllEvents { listEvents{ items{ id name when } } }
イベントデータは削除されて、空になっています。
まとめ
新サービス、AWS AppSyncのサンプルスキーマからGraphQL APIを作成し、コンソールから簡単なクエリを試してみました。
GraphQL APIのイメージができたでしょうか?引き続き、GraphQLクライアントの作成やDynamoDB以外のデータストアを使うことも試していきたいと思います。