LoginSignup
0
0

More than 1 year has passed since last update.

AppSync×DynamoDB(DELETE編)

Last updated at Posted at 2022-12-04

概要

AppSyncとDynamoDBを使用した簡易的なAPIの作成方法を紹介します。

この記事では、DBのデータを削除する処理を紹介します。

前提条件

  • DynamoDBが用意されていること

AppSync

スキーマ

input CreateRadioInput {
  id: ID!
  program_name: String
  cast: [String!]
  weekday: Int
  time: String
  favorite: Boolean
}

# 今回追加する箇所
input DeleteRadioInput {
  id: ID!
}

type Mutation {
  createRadio(input: CreateRadioInput!): Radio
  updateRadio(input: UpdateRadioInput!): Radio
  deleteRadio(input: DeleteRadioInput!): Radio # 今回追加する箇所
}

type Query {
  getRadio(id: ID!): Radio
  listRadio(filter: TableRadioFilterInput, limit: Int, nextToken: String): RadioConnection
}

type Radio {
  id: ID!
  program_name: String
  cast: [String!]
  weekday: Int
  time: String
  favorite: Boolean
}

type RadioConnection {
  items: [Radio]
  nextToken: String
}

input TableBooleanFilterInput {
  ne: Boolean
  eq: Boolean
}

input TableIntFilterInput {
  ne: Int
  eq: Int
  le: Int
  lt: Int
  ge: Int
  gt: Int
  contains: Int
  notContains: Int
  between: [Int]
}

input TableRadioFilterInput {
  day: TableIntFilterInput
  time: TableStringFilterInput
  favorite: TableBooleanFilterInput
}

input TableStringFilterInput {
  ne: String
  eq: String
  le: String
  lt: String
  ge: String
  gt: String
  contains: String
  notContains: String
  between: [String]
  beginsWith: String
}

input UpdateRadioInput {
  id: ID!
  program_name: String
  cast: [String!]
  day: Int
  time: String
  favorite: Boolean
}

リゾルバー

  • リゾルバーのQueryからdeleteRadio(...): Radioアタッチを選択

リクエストマッピングテンプレート

{
  "version": "2017-02-28",
  "operation": "DeleteItem",
  "key": {
  "id": $util.dynamodb.toDynamoDBJson($ctx.args.input.id)
  }
}

レスポンスマッピングテンプレート

$util.toJson($ctx.result)

実行

  • クエリを実行する
    • 画面左が実行クエリ、画面右が実行結果
      クエリ
  • DynamoDBのデータが削除されていることの確認
    • 削除前
      DynamoDB

    • 削除後
      DynamoDB

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