FuelPHPで、たった5分でWEBサービスを作ってみた。
最近流行り(?)のFuelPHPで、簡単なWEBサービスを(いきおいで)作ってみましたよ。
http://api.usb.co.jp/usb/
USB機器のベンダ情報/プロダクト情報の検索サービスです。(業務上あったらいいなと思っていたので、、、)
応答フォーマットとして、HTML, XML, PHPSerialize, CSV, JSON をサポートしています。
FuelPHPのRestコントローラを使うと、超簡単に実装できました。
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」がオススメ。