Movable Type Data APIの使い方:paramsについて

Movable Type Data APIの使い方:paramsについて

Posted at August 22,2013 12:55 AM
Tag:[DataAPI, MovableType]

Movable Type 6から提供されるData APIの使い方を紹介します。

本エントリーでは、JavaScript SDK APIのparamsの使い方について解説します。

1.APIのparamsについて

Data APIのドキュメントでは数多くのAPIに「params」が設定できるように書かれています。

Data APIのドキュメント「listEntries()」より抜粋
listEntries

paramsはAPIを実行するときのオプションで、たとえば取得するオブジェクトの件数や返却時のフィールドを指定することができます。

ということで以下、listEntries()を使ってparamsの設定方法をいくつか紹介します。

サンプルではJavaScriptライブラリのインクルードやapiの生成・エラーのハンドリング等を省略しているので、以下の記事を参照して適宜追加してください。

jQueryを利用しているので、jQueryのインクルードも行ってください。

2.取得記事をフィルタリングする

Movable Type Data APIの使い方:listEntries()」で記事一覧を取得する基本的な使い方を解説しましたが、このままではすべての記事を取得してしまいます(厳密にはAPI側で50記事に絞られるようです)。

listEntries()では、paramsを第2パラメータに設定することで、取得する記事をフィルタリングすることができます。

たとえば新着3件の記事を表示するには、「limit:」を設定した変数paramsをlistEntries()に設定します。

<script>
// API生成コード等は省略
 
var siteId = 2;
var params = {
  limit: 3
};
api.listEntries(siteId, params, function(response) {
  if (response.error) {
    return;
  }
  for (i=0; i< response.items.length; i++) {
    jQuery('#result').append($('<li>').append(response.items[i].title));
  }
});
</script>
<div id="result"></div>

赤字が「Movable Type Data APIの使い方:listEntries()」のサンプルコードに追加した部分になります。

その他、以下のパラメータが設定できるようです(listEntries()では使われないと思われるパラメータも含まれています)。

  • sortBy:'title'や'authored_on'などを指定
  • sortOrder:'ascned'または'descend'を指定
  • limit:記事件数を指定
  • offset:除外したい記事数を指定
  • scope:'blog'または'website'または'system'
  • blog_id:ブログID
  • blog_ids:複数のブログID

他にも設定可能なパラメータがあるようですが、動作未確認なのでここでは割愛しています。

3.取得記事のフィールドを特定する

2項のコードでは、返却されるJSONデータにすべてのフィールドが設定されてしまい、パフォーマンス上好ましくありませんん。

たとえばJSONデータを記事タイトルとパーマリンクだけに特定したい場合は、パラメータに「fields:」を設定します。

<script>
// API生成コード等は省略
 
var siteId = 2;
var params = {
  limit: 3,
  fields: 'title, permalink'
};
api.listEntries(siteId, params, function(response) {
  if (response.error) {
    return;
  }
  for (i=0; i< response.items.length; i++) {
    jQuery('#result').append($('<li>').append(response.items[i].title));
  }
});
</script>
<div id="result"></div>

「fields:」の値に、取得したいフィールドを設定します。複数取得する場合はカンマ区切りで設定します。

設定可能なフィールドは収集するオブジェクトによって異なります。

4.指定した文字列でフィルタリングする

パラメータに「search:」を加え、値に文字列を設定することで、文字列を含む記事だけにフィルタリング、つまり検索することができます。

<script>
// API生成コード等は省略
 
var siteId = 2;
var params = {
  limit: 3,
  fields: 'title, permalink',
  search: 'hoge',
  searchFields: 'title, body'
};
api.listEntries(siteId, params, function(response) {
  if (response.error) {
    return;
  }
  for (i=0; i< response.items.length; i++) {
    jQuery('#result').append($('<li>').append(response.items[i].title));
  }
});
</script>
<div id="result"></div>

「searchFields:」は検索対象のフィールドを指定します。「searchFields:」は必須ではないようです。

関連記事
zenback
人気エントリー
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)