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 3, 2025

操作の無効化

disableOperations メソッドを使用すると、Amplify アプリケーションのモデルに対して特定の GraphQL 操作を選択的に無効にできます。これは、特殊な API デザインを実装し、デプロイされるリソースの数を削減するのに便利です。

モデル定義に disableOperations メソッドを追加することで、操作を無効にできます:

amplify/data/resource.ts
export const schema = a.schema({
Customer: a
.model({
name: a.string(),
phoneNumber: a.phone(),
accountRepresentativeId: a.id().required(),
})
.disableOperations(["mutations", "subscriptions", "queries"])
.authorization(allow => [allow.publicApiKey()]),
});

利用可能な操作タイプ

disableOperations メソッドは、無効にしたい操作タイプの配列を受け入れます:

一般的な操作カテゴリ

  • mutations: すべてのミューテーション操作を無効化(作成、更新、削除)
  • subscriptions: すべてのリアルタイムサブスクリプション操作を無効化(onCreate、onUpdate、onDelete)
  • queries: すべてのクエリ操作を無効化(get、list)

特定の操作

より詳細な操作を無効にすることもできます: クエリ操作

  • get: ID による単一アイテムの取得を無効化
  • list: 複数アイテムの取得を無効化

ミューテーション操作

  • create: 新しいアイテムの作成を無効化
  • update: 既存アイテムの更新を無効化
  • delete: アイテムの削除を無効化

サブスクリプション操作

  • onCreate: アイテムが作成されたときのリアルタイム通知を無効化
  • onUpdate: アイテムが更新されたときのリアルタイム通知を無効化
  • onDelete: アイテムが削除されたときのリアルタイム通知を無効化

配列に 1 つ以上の操作タイプを指定して、それらを無効にできます:

// すべてのミューテーションを無効化
disableOperations: ["mutations"]
// サブスクリプションとクエリを無効化
disableOperations: ["subscriptions", "queries"]
// 特定の操作を無効化
disableOperations: ["create", "update", "list"]
// 特定のサブスクリプションタイプを無効化
disableOperations: ["onCreate", "onUpdate"]
// 一般的なカテゴリと特定の操作を混在させる
disableOperations: ["queries", "create", "onDelete"]