1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS AppSyncでAPIを作ってみたAdvent Calendar 2022

Day 6

外部サーバからAppSyncにcurlコマンドでリクエストを送る(APIキー)

Last updated at Posted at 2022-12-05

概要

この記事では、AppSync を外部サーバから叩く際の curlコマンド例を紹介します。

前提条件

  • AppSync が用意されていること
  • AppSync にカスタムドメインが紐づけられていること

コマンド例

Query

コマンド

curl -s "https://<カスタムドメイン>/graphql" \
-H "Content-Type: application/graphql" \ 
-H "x-api-key: <APIキー>" \ 
-d '{ "query": "query MyQuery { getData(id: "id1") { column } }" }'

設定値の説明

  • MyQuery:クエリの名称。自由に設定可。
  • getData:AppSyncで設定しているクエリの名称。
  • id:取得したいデータの主キーの名称。
  • id1:取得したいデータの主キーの値。
  • column:取得したいデータのカラム名。

AWS CloudShell の場合

  • CloudShell を使用する場合は、クエリ内のダブルクォーテーションの前に「\」をつける必要があります。
$ curl -s "https://<カスタムドメイン>/graphql" \
-H "Content-Type: application/graphql" \ 
-H "x-api-key: <APIキー>" \ 
-d '{ "query": "query MyQuery { getData(id: \"id1\") { column } }" }'

Mutation

コマンド

$ curl -s "https://<カスタムドメイン>/graphql" \
-H "Content-Type: application/graphql" \ 
-H "x-api-key: <APIキー>" \ 
-d '{ "query":"mutation MyMutation($input1: CreateDataInput!) 
{ createData(input: $input1) { id column } }", 
"variables": { "input1": { "id": "id1", "column": "data" } } }'

設定値の説明

  • MyMutation:ミューテーションの名称。自由に設定可。
  • CreateDataInput:AppSyncで設定しているミューテーションの名称。
  • createData:AppSyncで設定しているミューテーションの名称。
  • id:登録したいデータの主キーの名称。
  • id1:登録したいデータの主キーの値。
  • column:登録したいデータのカラム名。
  • data:登録したいデータの値。

下から2行目の{ id column }は戻り値です。ほしい値を設定してください。

おわりに

自身が試したいと思ったときに Query の例は見つけられても Mutation の例が見つからなかったので今回記事を書きました。

-d '{ "query": " <ここ> " }'

「ここ」と記載した箇所は、基本的に AppSync のコンソール画面の「クエリ」と同じですので、画面上でクエリを作成してから「ここ」の箇所にペーストしてお使いいただければ楽だと思います。

1
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?