概要
Amplifyのワークショップを行った際のメモ
ゴール
Amplifyコンソールからクエリ変数
を利用し、コメントを投稿するGraphQLリクエストを実行する
背景
Amplifyの学習で公式のワークショップで学習をする機会がありました。
事前準備
今回は、事前にaws_consoleというユーザを作成しています。
該当範囲
MVPを作ろう!-POST機能: BACK-END(1)
AWSマネジメントコンソールを開き、初めてのクエリ実行としてコメントの投稿を行います。
基本的には、AppSyncのクエリ操作は、Explorerから以下の操作を行うことでリクエスト可能です。
-
▶︎ createPost
を押下し開く -
▼ createPost
に値を入力する
前提条件
ここまで amplify add api
が実行済みなので、src/graphql/mutations.js
が生成されています。
TODO
- 自動生成されたファイルの内容を確認する
- リクエストの内容をAppSyncコンソールに貼り付ける
- 実行する
1. 自動生成されたファイルの内容を確認する
src/graphql/mutations.js
内には下記のような箇所が見当たります。
export const createPost = /* GraphQL */ `
mutation CreatePost(
~省略~
) {
createTimeline(input: $input, condition: $condition) {
~省略~
}
}
`;
生成されている上記のコードを利用してGraphQLリクエストが実行可能です。
2. リクエストの内容をAppSyncコンソールに貼り付ける
- (上記の)
mutation CreatePost (~略~) {~略~}
をコピーし、AppSyncのクエリに貼り付ける - クエリ変数の欄に
$input
内の変数:値
を記載する
まずは、下記の内容をクエリとして貼り付けます。
mutation CreatePost($input: CreatePostInput!, $condition: ModelPostConditionInput) {
createPost(condition: $condition, input: $input) {
type
id
content
owner
timestamp
}
}
次に、下記の内容をクエリ変数の欄に貼り付けます。
(timestampは10
などでも問題ありませんが、date +%s
で出力し、貼り付けて利用してください。)
{
"input": {"content": "HelloWorld", "timestamp": 1614426783, "type": "post" }
}
3. 実行する
実行すると、以下の画像のようになります。
Queryの操作について下記の記事が参考になったので載せておきます。
https://qiita.com/shunp/items/d85fc47b33e1b3a88167#comments
4. 確認
Subscription
- AWSマネジメントコンソールを計2枚開く
- onCreatePostを実行する
- mutationでcreatePostを実行する
1. AWSマネジメントコンソールを計2枚開く
一方(左)は先程のcreatePostです。
他方(右)はSubscriptionであるonCreatePostです。
以下を貼り付けます。
subscription OnCreatePost {
onCreatePost {
type
id
content
owner
timestamp
}
}
2. onCreatePostを実行する
(画像:右)のSubscriptionであるonCreatePostを実行すると、
1個のミューテーションにサブスクライブしました
と表示され、ボタンの ▶︎ が ■ に変わります。
3. mutationでcreatePostを実行する
(画像:左)のcreatePostを実行すると、onCreatePostがPostされたメッセージを受け取ります。