「WordPressで学ぶPHP(2)データ構造(配列・オブジェクト)編」を発売しました。
本書は「WordPressで学ぶPHP(1)変数・制御構造編」の続編にあたり、PHPの「データ構造」(配列とオブジェクト)について解説します。
配列やオブジェクトは、頭の中で考えるだけでは、イメージがつかみにくいです。本書では図を多用して、配列やオブジェクトをなるべく分かりやすく解説することを心がけました。
Kindle本で、定価250円です。
Data APIを使ってみる(その5)
Data APIは、プラグインで拡張することもできるようになっています。
その基本的な方法を紹介します。
1.概要
Data APIを使うと、Movable Typeに外部からアクセスすることができます。
ただ、現状では取得や変更などができない箇所もあります。
また、Data APIはHTTP経由でのアクセスなので、オーバーヘッドもあります。
処理によっては、Movable Type標準のAPIだけだと、APIを何度を呼び出す必要が出てしまい、速度的に厳くなる場合があります。
このようなときには、プラグインで独自のAPIを追加することもできます。
Movable Typeらしく、APIの内部もフレームワーク的に作られています。
2.エンドポイントの追加
プラグインでエンドポイントを追加するには、最低限以下の2つの作業が必要です。
2-1.config.yamlにエンドポイントの情報を記述
まず、プラグインのconfig.yamlファイルで、レジストリのapplications→data_api→endpointsの下に配列を追加し、その個々の要素としてエンドポイントの情報を記述します。
個々のエンドポイントの情報はハッシュで記述します。
ハッシュの内容は以下の通りです。
キー | 内容 |
---|---|
id | エンドポイントのID |
routes | エンドポイントのアドレスのうち、「http://・・・/mt-data-api.cgi」から後の部分 |
verb | 受け入れるプロトコル(GETやPOSTなど) |
version | APIのバージョン |
handler | エンドポイントの処理をするハンドラ |
requires_login | ログインが不要であれば0を指定 |
2-2.ハンドラを作成
次に、エンドポイントに対応するハンドラを作成します。
ハンドラでは、必要な処理を行って、結果を返します。
返したいデータ構造を、配列やハッシュで表し、それらへのリファレンスをreturnします。
返された結果が、APIで得られる値になります。
また、オブジェクトをreturnしたり、配列/ハッシュの要素にオブジェクトを入れてreturnすることもできます。
出力するフィールドや、データの形式などは、後述する「リソース」で定義します。
Movable Type標準のオブジェクト(記事等)では、Data APIであらかじめリソースが定義されています。
独自のオブジェクトを作る場合は、自分でリソースを定義する必要があります。
2-3.プラグインの例
ごく簡単なプラグインの例として、ブログの名前/概要/アドレス/記事数を返すAPIを作ってみました。
「http://・・・/mt-data-api.cgi/v1/sites/ブログのID/blogstat」にアクセスすると、上記の情報が返されます。
3.リソースの追加
Data APIで扱うオブジェクトを、「リソース」(resource)と呼びます。
記事やコメントなどがリソースにあたります。
プラグインで独自のリソースを追加することも可能です。
この場合は、プラグインのconfig.yamlで、レジストリのapplications→data_api→resources→updatable_fieldsとapplications→data_api→resources→fieldsの下の階層に、個々のリソースの情報を記述します。
updatable_fieldsは、APIで作成や変更ができるフィールドの情報を表します。
また、fieldsは個々のフィールドの出力方法を表します。
リソースの定義の仕方は、lib/MT/DataAPI/Resourcesディレクトリにある.pmファイルを参照してください。