Name:
interface
Value:
Amplify has re-imagined the way frontend developers build fullstack applications. Develop and deploy without the hassle.

Choose your framework/language

Gen1 DocsLegacy

Page updated Mar 26, 2026

アプリケーションデータの作成、更新、削除

このガイドでは、Amplify ライブラリのデータクライアントを使用してデータの作成、更新、削除を行う方法を学びます。

開始する前に、以下が必要です:

項目の作成

バックエンドのデータスキーマを使用してデータクライアントを生成して、項目を作成できます。その後、項目を追加できます:

import { generateClient } from 'aws-amplify/data';
import { type Schema } from '../amplify/data/resource'
const client = generateClient<Schema>();
const { errors, data: newTodo } = await client.models.Todo.create({
content: "My new todo",
isDone: true,
})

注: createdAt または updatedAt フィールドを指定する必要はありません。Amplify は自動的にこれらのフィールドを設定します。

項目の更新

項目を更新するには、update 関数を使用します:

import { generateClient } from 'aws-amplify/data';
import { type Schema } from '../amplify/data/resource';
const client = generateClient<Schema>();
const todo = {
id: 'some_id',
content: 'Updated content',
};
const { data: updatedTodo, errors } = await client.models.Todo.update(todo);

注:

  • updatedAt フィールドを指定する必要はありません。Amplify は自動的にこのフィールドを設定します。
  • API で予期されていない追加の入力フィールドを指定する場合、このクエリは失敗します。これはクエリで返される errors フィールドで確認できます。Amplify データでは、エラーは例外のようにスローされません。代わりに、すべてのエラーはキャプチャされ、クエリ結果の errors フィールドの一部として返されます。

項目の削除

削除ミューテーションを使用して Todo を削除できます。削除する項目を指定するには、その項目の id のみを指定する必要があります:

import { generateClient } from 'aws-amplify/data';
import { type Schema } from '../amplify/data/resource'
const client = generateClient<Schema>();
const toBeDeletedTodo = {
id: '123123213'
}
const { data: deletedTodo, errors } = await client.models.Todo.delete(toBeDeletedTodo)

注: 多対多の関係で項目を削除する場合、結合テーブルレコードは関連するレコードを削除する前に削除する必要があります。例えば、Posts と Tags の多対多の関係の場合、Post または Tag を削除する前に PostTags 結合レコードを削除します。詳細は多対多の関係を参照してください。

トラブルシューティング
認可されていないエラーのトラブルシューティング

各 API リクエストは認可モードを使用します。認可されていないエラーが発生した場合、認可モードを更新する必要があります。amplify/data/resource.ts ファイルで定義されたデフォルト認可モードをオーバーライドするには、リクエストまたはクライアントに authMode プロパティを渡します。次の例は、カスタム認可モードでデータを更新する方法を示しています:

import { generateClient } from 'aws-amplify/data';
import { type Schema } from '../amplify/data/resource';
const client = generateClient<Schema>();
const { errors, data: newTodo } = await client.models.Todo.create(
{
content: 'My new todo',
isDone: true,
},
{
authMode: 'apiKey',
}
);

作成、更新、削除のリクエストのキャンセル

.create(...).update(...)、または .delete(...) で返されるミューテーションリクエストプロミスで .cancel を呼び出して、任意のミューテーション API リクエストをキャンセルできます。

const promise = client.models.Todo.create({ content: 'New Todo' });
// ^ 注:リクエストを待機していなく、プロミスを返しています
try {
await promise;
} catch (error) {
console.log(error);
// リクエストがキャンセルされたため、ここで確認できます。
if (client.isCancelError(error)) {
console.log(error.message); // "my message for cancellation"
// ユーザーキャンセルロジックを処理します
}
}
//...
// 上記のリクエストをキャンセルするには
client.cancel(promise, 'my message for cancellation');

.create().update().delete() から返されるプロミスが変更されていないことを確認する必要があります。通常、非同期関数は返されるプロミスを別のプロミスでラップします。例えば、以下は動作しません

async function makeAPICall() {
return client.models.Todo.create({ content: 'New Todo' });
}
const promise = makeAPICall();
// 以下はリクエストをキャンセルしません。
client.cancel(promise, 'my error message');

終了

おめでとうございます!アプリケーションデータの作成、更新、削除ガイドを完了しました。このガイドでは、アプリデータの作成、更新、削除を行いました。

次のステップ

次のステップとして推奨されるものは、API を使用してデータをクエリし、リアルタイムイベントをサブスクライブしてデータのミューテーションを監視することです。このために役立つリソースは以下のとおりです: