ガイド
バッチ操作
エンティティをバッチで管理する方法を学びます。
モデルとリレーションの両方で、以下のバッチ操作がサポートされています: 作成(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();