この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちは、菊池です。
先日、フルマネージドな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以外のデータストアを使うことも試していきたいと思います。