ManifestController @ AboutManifest

記述例

  controller_name1: {
    item_name: 'item_name1',
    actions: {
      action_name1: {
        type: 'list',
        args: {
          list_name: 'list_name1',
        },
      },
      action_name2: {
        type: 'list',
        args: {
          list_name: 'list_name2',
        },
      },
    },
  },
  controller_name2: {

APIを提供するすべてのアイテム(この場合、controller_name1およびicontroller_name2)に 対して、利用可能なアクションをactionsで定義する。

記述

item_name

コントローラと結びつくアイテムの名称を設定する。省略時はコントローラ名が設定される。本当はコントローラ名を単数形に変化させてデフォルト値として採用したかったのだが、言語によっては単数形と複数形を変換する辞書がないこともあるので、断念した。通常コントローラ名は複数形で記述されるので、この項目を省略すべきではない。

次の場合controller_name1はauthorを操作するためのコントローラである。

  controller_name1: {
    item_name: 'author',
  },

actions

機能の名称と処理内容を設定する。

形式はname > type > argsである

type

アクションの処理タイプを次の中から文字列で設定する。

  • 'list'
  • 'show'

クライアント開発者は、ユーザがクリックするなどアクションを発生させた場合の処理をこれに合わせて実装するように。

args

アクションの処理に必要なオプションを与えるための設定。記述するべき内容はタイプによって違ってくる。

List

action typeでlistをを選択したときに利用される。

list_name

モデルから一覧を取得するためのリスト名を文字列で設定する。省略したときはアクション名が補充される。

次の例の場合、scrollのindexアクションはpublic_listを使って一覧を取得して、それを表示する。

  scroll: {
    actions: {
      index: {
        type: 'list',
        args: {
          list_name: 'public_list',
        },
      },
    },
  },

もちろんこの場合scrollモデルのlistsにはpublic_listが存在しなければならない。

item_name

アクションと結びつくアイテムの名称を設定する。省略時はコントローラーのitem_nameが設定される。マイホームのアクションのように、名称がアイテムの名称と一致しないケースに対応するために用意されている。通常は一致するので省略して良い。

counter_name

このリストのトータル件数を取得するためのアクション名を文字列で設定する。省略したときはヌル文字列が補充される。これは件数を取得するAPIが存在しないことを意味する。

Show

action typeでshowをを選択したときに利用される。

アクション

リストアクション

一覧を取得して返すための処理を実装したもの。一覧を取得するための機能はManifestListとして独立しているので、リスト名とリンクさせるだけの処理となる。