FuelPHPで、たった5分でWEBサービスを作ってみた。

最近流行り(?)のFuelPHPで、簡単なWEBサービスを(いきおいで)作ってみましたよ。
http://api.usb.co.jp/usb/

USB機器のベンダ情報/プロダクト情報の検索サービスです。(業務上あったらいいなと思っていたので、、、)
応答フォーマットとして、HTML, XML, PHPSerialize, CSV, JSON をサポートしています。

FuelPHPRestコントローラを使うと、超簡単に実装できました。

class Controller_Usbapi extends Controller_Rest
{
    public function get_list()
    {
    	$result  = NULL;
    	$where = NULL;
    	$vid = Input::get('VID');
    	$pid = Input::get('PID');

    	if ( $vid )
    	{
		$where['vender_id'] = strtoupper($vid);
    	}
      	if ( $pid )
    	{
		$where['product_id'] = strtoupper($pid);
    	}

	$result = Model_Usbinfo::get_for_api($where);

	if ($this->format === 'html')
	{
    		$data['result'] = $result;
    		echo View::forge('usbapi/resulthtml', $data);
    		return;
	}
	else
	{
	    $this->response( $result );
	}
    }
}

以上のコードだけで、リクエスURIの拡張子を変えるだけで、各フォーマットで取得できるようになります。

素敵。。。

Restコントローラのドキュメントを見ると、html形式をサポートしているはずなのですが、バージョンが違うのか、対応していないみたいなので自前で実装しています。

FuelPHPは、TwitterのBootstrapが標準構成に含まれているので、Viewの作成もサクサクできていいですね。なお、自習資料としては、鈴木憲治さんの「はじめてのフレームワークとしてのFuelPHP」がオススメ。