ガイド

バッチ操作

エンティティをバッチで管理する方法を学びます。

モデルとリレーションの両方で、以下のバッチ操作がサポートされています: 作成(store)、更新(update)、削除(destroy)、復元(restore)です。

バッチ作成(Store)

このエンドポイントは、リクエストペイロードにresources配列を持つオブジェクトを期待します。配列の各項目は、作成するリソース(例: 投稿)を表すオブジェクトです。

// (POST) https://myapp.com/api/posts/batch
{
    "resources" : [
        {
            "title" : "My Post 1",
            "body" : "Example body text"
        },
         {
            "title" : "My Post 2",
            "body" : "Example body text"
        }
    ]
}

バッチ更新(Update)

このエンドポイントは、リクエストペイロードにresourcesオブジェクトを持つオブジェクトを期待します。各キーはリソースのidで、各項目は更新するリソース(例: 投稿)を表すオブジェクトです。

// (PATCH) https://myapp.com/api/posts/batch
{
    "resources" : {
        "5" : {
            "title" : "My Post 1 (updated)",
            "body" : "Example updated body text"
        },
        "6": {
            "title" : "My Post 2",
            "body" : "Example body text"
        }
    }
}

バッチ削除(Delete)

このエンドポイントは、リクエストペイロードにresources配列を持つオブジェクトを期待します。配列の各項目は、削除するリソース(例: 投稿)のidです。

// (DELETE) https://myapp.com/api/posts/batch
{
    "resources" : [5,6]
}

バッチ復元(Restore)

このエンドポイントは、リクエストペイロードにresources配列を持つオブジェクトを期待します。配列の各項目は、復元するリソース(例: 投稿)のidです。

// (POST) https://myapp.com/api/posts/batch/restore
{
    "resources" : [5,6]
}

バッチ操作の無効化

バッチ操作は、すべてのリソースでデフォルトで有効になっています。特定のエンドポイントを無効にするには、Laravelのexceptメソッドを使用します。

Orion::resource('posts', PostsController::class)->except(['batchStore', 'batchUpdate']);

リソース上のすべてのバッチ操作を無効にするには、withoutBatchメソッドを使用します。

Orion::resource('posts', PostsController::class)->withoutBatch();