2日目るびぃあどぅべんどぅくぁれんだー2013、2日目の記事となります。昨日はすうぱぁももんがさんのあくろばてぃっくな今年こそRubyを始めたいあなたに!ももんが流・最強のRuby学習法です。APIをRubyで作ってきました。API開発についてコード例を交えてお話したいと思います。APIとはスマホアプリから使用する、サーバに置いてあるAPIをイメージして頂ければと思います。ここではユーザが写真をサーバに保存できるAPIを想定し、応答のフォーマットはJSONとします。4を使うのは趣味です。grapeAPIを書く際に非常に楽になります。APIで使用するURLとHTTPメソッドの構造をベースとしたDSLを使用することで、該当のAPIとコードの対応が非常に分かりやすく書けます。一つのファイルにAPIのコントローラ全てが纏めることができ、コード全体を非常に把握しやすくなります。rablJSONのビューを書く際に非常に便利なテンプレートエンジンです。ビューを使いまわして入れ子にしたりすることも出来るので、複雑なJSONを生成する際には欠かせません。json_expressionsRSpecでJSONをテストする際に非常に便利なmatcharです。Rubyで予期されるJSONの構造をまんま書くことで、それにマッチするか判定してくれます。マッチしなかった時のエラーも単なる文字列比較に終わるのではなく、どの属性の値が違うとか配列の要素の数がおかしいとか賢い指摘をしてくれます。その他おなじみRailsで使うgemですがGrapeでも使えます。kaminariページングに役立つgemです。paperclipおなじみのRailsで画像を取り扱うgemです。ojJSON生成に使うgemでなんかすっごいはやいらしい。factory_girl_railsおなじみのテスト用オブジェクト作成gem。ffakerfaker-japaneseテスト用文字列を作成するgem。後者は日本語の文字列も生成できます。コードはこんな風になりますこの環境での開発を始めてからテスト駆動しやすくなりました。テストit_behaves_like('201')は返ってきたレスポンスがlet(:result)で定義したJSONと一致するか、またレスポンスコードが201であるかを見ています。*_matcharというのは別所で定義した正規表現です。要はどんなURLにどんなメソッドでどんなパラメータを送ったらどんなJSONの応答が欲しいか書きます。endendコントローラこのファイルにコントローラの全てが集約されます。URLの構造に沿ったコードの構造になっています。Parametersに対応するためhelpersで通すパラメータを定義したメソッドを用意しています。endendビューrablを使いビューを記述します。extendsで他のビューを入れ子に出来ます。'api/users/detail'endモデルいつものRails。終わりにステップバイステップで冒頭のAPIを作ろうとしましたが納期に間に合いませんでした!雰囲気を感じて貰えればと思います。2013、3日目の担当はznzさんです。Contributionなのですが、znzさんを見ると・・・凄いです。以下の記事は何度も読み返し大変お世話になりました。upLoginユーザーは見つかりませんでした。