今の人気ワードをWikipediaの記事を表示させる、名付けてToday’s Pedia。

http://todayspedia.herokuapp.com

CSS全然書いてないから真っ白ですけどね。

○フレームワークの選定

Railsもいずれしっかり扱えるようになりたいのですけど、お作法が多すぎてなかなか覚えることができず。。。

DBを使わない簡単なアプリであれば、Sinatraのほうが楽だと思ってこちらを選びました。

○デプロイ先の選定

デプロイ先はAWSのElasticBeanstalkも候補だったのですが、フリーで使える方ということでHerokuにしました。

ただ、HerokuにRubyのアプリをデプロイする場合、色々と制限というかハマりポイントが結構あるので、

いちいちそれに時間取られるくらいだったらAWSでも良かったかなと今は思っています。

・DBがMySQL限定

・StackCedarってなんだっけ

・condig.ruが必要

○使ったAPI

WebAPIを使ってアプリを作ってみたかったので、

・SimpleAPIのWikipediaAPI

・trackwordの人気検索ワードAPI

を組み合わせ。そんな複雑なことはやってません。

○ハマったところなど

ハマったのはXMLで取得したデータの扱い方でした。

大体、APIはXMLでデータを返すので、それをHash.from_xmlで受けてるんですが、Hashに入ってるデータの構造がよくわからず苦労しました。

結局、ハッシュの中にArrayがValueになっているハッシュがネストしてるって構造だったのですけど。

思い返せばなんだ単純じゃないかって感じなんですが、作ってる当時は何が起こってるかさっぱりわからず、

至るとことでputsして値を確認してたりしました・・・。

なんでこんなんでハマってるのかなーと自己嫌悪に陥ること数時間・・・orz

○その他

各メソッドの動作確認のために、簡単ですがSpecを書くようにしてみました(今まで全然書いてなかった)。

Webデベロッパな方々にとっては当然なのでしょうけど。

いちいちアプリを起動して動作させるのではなく、機能ごとにSpecで動作検証していくのは時間的にもAPIのリリース元様に対しても優しいですね。

今回はまだNullチェックとかハッシュのキーの存在チェックくらいしかSpecで書けなかったので、上に書いたような実際にXMLを取得した時に構造がわからなくてハマる、なんてことになりましたけど。

公開はしたものの、ちょくちょくサーバーエラーが出ます。

原因は・・・まだわかってません、スミマセンm(_ _)m

SimpleAPI側が空のデータを返すこともあるみたいなので、もし「API returns nil」と表示された場合はリロードしてみるとうまく表示されるかもしれませんよ(投げやり)

では。