SingleRecordResource
単一のレコードを対象とした Resource です。データは単一のオブジェクトとして扱われ、主キーによる取得、作成・更新(save)、および削除をサポートします。詳細表示やフォームなどの「単一レコード」を扱うシーンに適しています。MultiRecordResource とは異なり、SingleRecordResource の getData() は単一のオブジェクトを返します。setFilterByTk(id) で主キーを指定し、save() は isNewRecord の状態に応じて自動的に create または update を呼び出します。
継承関係: FlowResource → APIResource → BaseRecordResource → SingleRecordResource。
作成方法: ctx.makeResource('SingleRecordResource') または ctx.initResource('SingleRecordResource')。使用前に setResourceName('コレクション名') を呼び出す必要があります。主キーに基づいて操作する場合は setFilterByTk(id) を設定します 。RunJS 内では、ctx.api は実行環境によって注入されます。
活用シーン
データ形式
getData()は単一のレコードオブジェクト(get インターフェースのdataフィールド)を返します。getMeta()はメタ情報(存在する場合)を返します。
リソース名と主キー
状態
リクエストパラメータ(フィルタ / フィールド)
CRUD
設定とイベント
例
基本的な取得と更新
レコードの新規作成
レコードの削除
関連の展開とフィールド指定
関連リソース(例: users.profile)
save 時の自動リフレッシュを無効にする
refresh / saved イベ ントのリスニング
注意事項
- setResourceName は必須: 使用前に必ず
setResourceName('コレクション名')を呼び出してください。そうしないとリクエスト URL を構築できません。 - filterByTk と isNewRecord:
setFilterByTkを設定していない場合、isNewRecordは true となり、refresh()はリクエストを送信しません。また、save()は create アクションを実行します。 - 関連リソース: リソース名が
parent.child形式(例:users.profile)の場合、先にsetSourceId(親レコードの主キー)を設定する必要があります。 - getData はオブジェクトを返す: 単一レコード用インターフェースが返す
dataはレコードオブジェクトであり、getData()はそのオブジェクトを直接返します。destroy()後は null になります。
関連情報
- ctx.resource - 現在のコンテキストにおける resource インスタンス
- ctx.initResource() - 初期化して ctx.resource にバインドする
- ctx.makeResource() - バインドせずに新しい resource インスタンスを作成する
- APIResource - URL 指定でリクエストを行う汎用 API リソース
- MultiRecordResource - コレクション/リスト向け。CRUD やページネーションをサポート

