LoginSignup
0
0

More than 3 years have passed since last update.

AppSyncコンソールからクエリ変数の利用する

Last updated at Posted at 2021-02-27

概要

Amplifyのワークショップを行った際のメモ

ゴール

Amplifyコンソールからクエリ変数を利用し、コメントを投稿するGraphQLリクエストを実行する

背景

Amplifyの学習で公式のワークショップで学習をする機会がありました。

事前準備

今回は、事前にaws_consoleというユーザを作成しています。

該当範囲

MVPを作ろう!-POST機能: BACK-END(1)

AWSマネジメントコンソールを開き、初めてのクエリ実行としてコメントの投稿を行います。

基本的には、AppSyncのクエリ操作は、Explorerから以下の操作を行うことでリクエスト可能です。

  1. ▶︎ createPost を押下し開く
  2. ▼ createPost に値を入力する

前提条件

ここまで amplify add api が実行済みなので、src/graphql/mutations.js が生成されています。

TODO

  1. 自動生成されたファイルの内容を確認する
  2. リクエストの内容をAppSyncコンソールに貼り付ける
  3. 実行する

1. 自動生成されたファイルの内容を確認する

src/graphql/mutations.js内には下記のような箇所が見当たります。

export const createPost = /* GraphQL */ `
  mutation CreatePost(
    ~省略~
  ) {
    createTimeline(input: $input, condition: $condition) {
      ~省略~
    }
  }
`;

生成されている上記のコードを利用してGraphQLリクエストが実行可能です。

2. リクエストの内容をAppSyncコンソールに貼り付ける

  1. (上記の) mutation CreatePost (~略~) {~略~} をコピーし、AppSyncのクエリに貼り付ける
  2. クエリ変数の欄に $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. 実行する

実行すると、以下の画像のようになります。

appsync.png

Queryの操作について下記の記事が参考になったので載せておきます。
https://qiita.com/shunp/items/d85fc47b33e1b3a88167#comments

4. 確認

Subscription

  1. AWSマネジメントコンソールを計2枚開く
  2. onCreatePostを実行する
  3. mutationでcreatePostを実行する

1. AWSマネジメントコンソールを計2枚開く

一方(左)は先程のcreatePostです。
他方(右)はSubscriptionであるonCreatePostです。

以下を貼り付けます。

subscription OnCreatePost {
  onCreatePost {
    type
    id
    content
    owner
    timestamp
  }
}

2. onCreatePostを実行する

(画像:右)のSubscriptionであるonCreatePostを実行すると、
1個のミューテーションにサブスクライブしました
と表示され、ボタンの ▶︎ が ■ に変わります。

before.png

3. mutationでcreatePostを実行する

(画像:左)のcreatePostを実行すると、onCreatePostがPostされたメッセージを受け取ります。

after.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0