アプリケーションデータの作成、更新、削除
このガイドでは、Amplifyライブラリの GraphQL クライアントを使用してデータを作成、更新、削除する方法について説明します。
開始する前に、以下が必要です:
ミューテーションを実行してアプリケーションデータを作成、更新、削除する
GraphQL では、ミューテーション (mutations) はデータを作成、更新、削除するために使用される API です。これはデータを読み取るが変更しないクエリとは異なります。以下の例は、Amplify GraphQL クライアントを使用してアイテムを作成、更新、削除する方法を示しています。
アイテムを作成する
Amplify.API.mutate を使用して GraphQL ミューテーションを実行し、アイテムを作成できます。
ファイルの最上部に次のインポートがあることを確認してください:
import Amplifyfunc createTodo() async { // Retrieve your Todo using Amplify.API.query var todo = Todo(name: "my first todo", description: "todo description") todo.description = "created description" do { let result = try await Amplify.API.mutate(request: .create(todo)) switch result { case .success(let todo): print("Successfully created todo: \(todo)") case .failure(let error): print("Got failed result with \(error.errorDescription)") } } catch let error as APIError { print("Failed to create todo: ", error) } catch { print("Unexpected error: \(error)") }}Amplify.API.mutate を使用して GraphQL ミューテーションを実行できます。ファイルの最上部に次のインポートがあることを確認してください:
import Amplifyimport Combinefunc createTodo() -> AnyCancellable { // Retrieve your Todo using Amplify.API.query var todo = Todo(name: "my first todo", description: "todo description") todo.description = "created description" let todoCreated = todo let sink = Amplify.Publisher.create { try await Amplify.API.mutate(request: .create(todoCreated)) } .sink { if case let .failure(error) = $0 { print("Got failed event with error \(error)") } } receiveValue: { result in switch result { case .success(let todo): print("Successfully created todo: \(todo)") case .failure(let error): print("Got failed result with \(error.errorDescription)") } } return sink}アイテムを更新する
データを更新するには、リクエストを .update に置き換えます。
try await Amplify.API.mutate(request: .update(todo))アイテムを削除する
データを削除するには、リクエストを .delete に置き換えます。
try await Amplify.API.mutate(request: .delete(todo))まとめ
おめでとうございます! アプリケーションデータの作成、更新、削除ガイドを完了しました。このガイドでは、GraphQL API を通じてアプリデータを作成、更新、削除しました。
次のステップ
推奨される次のステップには、API を使用してデータをクエリし、データの変更を確認するために実時間イベントにサブスクライブすることが含まれます。この作業に役立つリソースには以下が含まれます: