Create, update, and delete application data
Run a mutation
Now that the client is set up, you can run a GraphQL mutation with Amplify.API.mutate
to create, update, and delete your data.
Future<void> createTodo() async { try { final todo = Todo(name: 'my first todo', description: 'todo description'); final request = ModelMutations.create(todo); final response = await Amplify.API.mutate(request: request).response;
final createdTodo = response.data; if (createdTodo == null) { safePrint('errors: ${response.errors}'); return; } safePrint('Mutation result: ${createdTodo.name}'); } on ApiException catch (e) { safePrint('Mutation failed: $e'); }}
To update the Todo
with a new name:
Future<void> updateTodo(Todo originalTodo) async { final todoWithNewName = originalTodo.copyWith(name: 'new name');
final request = ModelMutations.update(todoWithNewName); final response = await Amplify.API.mutate(request: request).response; safePrint('Response: $response');}
To delete the Todo
:
Future<void> deleteTodo(Todo todoToDelete) async { final request = ModelMutations.delete(todoToDelete); final response = await Amplify.API.mutate(request: request).response; safePrint('Response: $response');}
// or delete by ID, ideal if you do not have the instance in memory, yetFuture<void> deleteTodoById(Todo todoToDelete) async { final request = ModelMutations.deleteById(Todo.classType, '8e0dd2fc-2f4a-4dc4-b47f-2052eda10775'); final response = await Amplify.API.mutate(request: request).response; safePrint('Response: $response');}