@toshiyuki83 Webサービス更新履歴&技術情報

PHP(FuelPHP)とかJavaScript(TitaniumMobile)とか、Webサービス情報など

FuelPHPで任意のViewにステータスコードを設定する方法 #fuelphp

Fuelphpで既存に用意されている404を使わずに任意のViewにステータスコードを設定させたいときの方法メモ。

 

Fuelphp1.4で404や500以外にも様々なステータスコードを返すことをしたいと思いました。 当初はここの記事を参考にして、ステータスコードをheader関数で設定しようとしましたが、どのステータスコードを設定しても、サーバー上で500のエラーが出る状態。

 

Twitterに投げかけたところ、「header関数はHTTPヘッダを送信する関数なので、関数使う前に文字を出力していると無効になっちゃいますね」と教えていただき、これはFuelphp的な問題だと気づきました。

 

結論としてはFuelphpの作法でステータスコードを設定する必要があります。 Rest コントローラ - 概要 - FuelPHP ドキュメントにありました。

response($data = array(), $http_code = 200)

とありました。実際にControllerでViewを生成するところに当てはめてみます。

$view = View::forge('sample/error'); // Viewファイルの指定

$view->set('test',$test); // 値を渡す

return Response::forge($view,404);

上記の404のところに任意のステータスコードを記入すると、任意のViewで任意のステータスコードを返すことができます。

全商品1円で購入可能な「激安!1円ショップ」を作りました!(FuelPHP+楽天API) #fuelphp

「激安!1円ショップ」とは、1円で購入可能な商品のみを集めたWebサービスです。1円で販売している商品のみをECサイトから収集を行い「激安1円ショップ」に掲載をしています。

f:id:toshiyuki83:20130223143302p:plain
激安!1円ショップ

経緯

私は個人開発者としては、APIをベースとしたWebサービスを作るのが好きで、今まではYahoo 画像APIを使ったWebサービスをいくつか作ってきました。(現存しているものはこれあれ)

一時期、使用回数無制限ということもあり、精度も悪くないことから、Bing画像APIに乗り換えていました。しかし、Bing画像APIが使用回数制限を設けてしまったため(しかもYahoo APIより使用回数が少ない)、再度Yahoo APIに乗り換えて、細々とサービスを続けています。

APIの使用回数制限についてはテクニックを使えば、APIの使用回数を節約していくことは可能なのですが、趣味Webサービス作りに関しては、できれば節約のことを考えずに、パッーと使いたいところです。

そんな中、次に遊ぶことのできるAPIを探していたところ、私が目につけたのは楽天APIでした。リクエスト回数制限が基本的(※1)には存在せず、場合によっては楽天アフィリエイトでの収入も見込めるという趣味と実益も兼ねる可能性を秘めたAPIです。

APIの種類がかなり多く(※2)、眺めているだけでも、たくさんのアイデアが出てきて、わくわくします!

さらに開発者を助ける便利ツールも提供されています!

APIテストフォーム」 - 最近のAPIによくあるAPIの挙動を試せるAPIエクスプローラー的なものです。getパラメーターを含んだリクエストURLをコードに記載する前にWeb上で確かめることができます。

APIモニター」 - 正常レスポンス率、レスポンスタイムがAPIごとに一覧表で表示されています。反応が鈍いAPIや重いAPIなどといったAPIがすぐにわかります。なんと現在の数値だけではなく、一週間前までの数字を見ることができます!これは信頼できます。

数字嫌いな人に見せたところ、「寒気がする」ということでしたが、数字が好きな僕にとっては、とってもわくわくする表です。実際の表をここに見せたいのですが、許可を取っていないため、掲載はやめています。ぜひとも実際に確認してみてください。

FuelPHP

このWebサービスもまた、FuelPHPで構築しています。バージョンは1.4です。公開しているWebサービスとしては5つ目のFuelPHPでの構築です。難しいことはやっていないのですが、だいぶ慣れてきました。今回は初めてテストを書きながら、構築しました。

なぜFuelPHPかというのは、FuelPHPで横断力技検索をリニューアルいたしました #fuelphpの記事をご覧ください。その他にもあります。(※3)

激安!1円ショップ

アプリの話に戻りますが、激安!1円ショップは楽天の商品検索で1円の商品だけを引っ張ってきて、表示しているWebサービスになります。実際にAPI開発をされている方であれば、「なるほど」となると思います。1円で購入できる商品は、サンプル品が多いですが、実際にお得な商品もあると思いますので、ぜひ掘り出しものを発掘してみてくださいね!

f:id:toshiyuki83:20130223143828p:plain
激安!1円ショップ

 

※1 「※短い時間の間に大量に、同一のリクエストURLへアクセスすると、一定時間利用できなくなる場合がございます。テストの際にはご注意ください。」という制限はあります。

※2 約40種類ぐらいあります。今はAPIバージョンの移行期らしく、バージョン1と2の両方が提供されています。1を除いて約40種類ほどでした。

※3

FuelPHPで「アイドルお宝画像速攻検索」をリニューアルいたしました #fuelphp

「3 Size Search」をFuelPHPでリニューアルいたしました #fuelphp

FuelPHPでサイコラ!をリニューアルいたしました #fuelphp