Data APIでテンプレートタグの値を使うプラグイン(その2・テンプレートの作成と利用)

昨日に続き、Data APIでテンプレートタグの値を使うプラグインの使い方を解説します。
今日は、テンプレートの作成と、エンドポイントにアクセスする際にそのテンプレートの出力を得る方法を解説します。

1.テンプレートモジュールの新規作成

まず、テンプレートモジュールを新規作成します。
通常は、Data APIでアクセスするブログ(またはウェブサイト)に、テンプレートモジュールを作ります。
例えば、Data APIでIDが1番のブログの情報を得る場合、そのID=1のブログにテンプレートモジュールを作ります。

そして、「DataAPI再構築」のカスタムフィールドのチェックをオンにします。
このチェックをオンにすることで、Data APIを通してテンプレートモジュールを動的に再構築することができるようになります。

2.テンプレートタグの結果を変数に代入する

次に、テンプレートモジュールの中身を作ります。
テンプレートタグの出力を変数に代入すると、それがData APIに渡されます。

例えば、Data APIで記事を取得する際に、前後の記事のアドレスも必要だとします。
この場合、テンプレートモジュールに以下のように書き、前後の記事のアドレスを、previous_link/next_linkの各変数に代入します。

<mt:EntryPrevious>
  <$mt:EntryPermalink setvar="previous_link"$>
</mt:EntryPrevious>
<mt:EntryNext>
  <$mt:EntryPermalink setvar="next_link"$>
</mt:EntryNext>

なお、利用できるテンプレートタグは、そのオブジェクトに関係するものです。
例えば、Data APIで記事を取得した場合、記事に関するテンプレートタグ(MTEntry系)を使うことができます。

3.エンドポイントにアクセスする

この状態で、「rebuildTemplateName=テンプレートモジュール名」のパラメータを付けて、エンドポイントにアクセスします。
すると、Data APIで取得した個々のオブジェクトに対して、テンプレートを再構築し、その結果も含めてJSONが返されます。

例えば、手順2で挙げたテンプレートモジュールに、「DataAPI Entry」という名前を付けたとします。
この状態で、IDが1番のブログの記事を読み込む場合、以下のようなアドレスにアクセスします。

http://your-host/path-to-mt/mt-data-api.cgi/vi/sites/1/entries?rebuildTemplateName=DataAPI%20Entry

JSONの個々のオブジェクトに「rebuildResult」というプロパティが追加され、その下の階層に個々の変数の値が代入されます。
例えば、上の例のアドレスにアクセスした場合、得られるJSONは以下のような形になります。

{
  "totalResults": 見つかった記事の数,
  "items": [
    {
      "title": 記事1のタイトル,
      "body": 記事1の本文,
      ・・・
      "rebuildResult": {
        "previous_link": 記事1の前の記事のアドレス,
        "next_link": 記事1の次の記事のアドレス
      },
      ・・・
    },
    {
      "title": 記事2のタイトル,
      "body": 記事2の本文,
      ・・・
      "rebuildResult": {
        "previous_link": 記事2の前の記事のアドレス,
        "next_link": 記事2の次の記事のアドレス
      },
      ・・・
    },
    ・・・
  ]
}