MultiRecordResource
データテーブル向けの Resource です。リクエストは配列を返し、ページネーション、フィルタリング、ソート、および CRUD 操作をサポートします。テーブルやリストなどの「複数レコード」のシナリオに適しています。APIResource とは異なり、MultiRecordResource は setResourceName() でリソース名を指定することで、users:list や users:create などの URL を自動的に構築し、ページネーション、フィルタリング、選択行の管理などの機能を内蔵しています。
継承関係: FlowResource → APIResource → BaseRecordResource → MultiRecordResource。
作成方法: ctx.makeResource('MultiRecordResource') または ctx.initResource('MultiRecordResource')。使用前に setResourceName('コレクション名')(例: 'users')を呼び出す必要があります。RunJS では、ctx.api は実行環境によって注入されます。
適用シーン
データ形式
getData()はレコードの配列を返します。これは list API のdataフィールドに相当します。getMeta()はページネーションなどのメタ情報を返します:page、pageSize、count、totalPageなど。
リソース名とデータソース
リクエストパラメータ(フィルタ / フィールド / ソート)
ページネーション
選択行(テーブルシーン)
CRUD とリスト操作
設定とイベント
例
基本的なリスト
フィルタリングとソート
関連の展開
作成とページ移動
選択した行の一括削除
refresh イベントのリスニング
関連リソース(子テーブル)
注意事項
- setResourceName は必須: 使用前に
setResourceName('コレクション名')を呼び出す必要があります。そうしないとリクエスト URL を構築できません。 - 関連リソース: リソース名が
parent.child形式(例:users.tags)の場合、先にsetSourceId(親レコードの主キー)を設定する必要があります。 - refresh のデバウンス: 同一イベントループ内で
refresh()が複数回呼び出された場合、重複リクエストを避けるために最後の一回のみが実行されます。 - getData は配列: リスト API が返す
dataはレコードの配列であり、getData()はその配列を直接返します。
関連情報
- ctx.resource - 現在のコンテキストにおける resource インスタンス
- ctx.initResource() - 初期化して ctx.resource にバインドする
- ctx.makeResource() - 新しい resource インスタンスを作成する(バインドしない)
- APIResource - URL 指定 による汎用 API リソース
- SingleRecordResource - 単一レコード向けリソース

