You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
Grape は RESTful な API を構築するためのマイクロフレームワークです。 今回は Grape を使って簡単な Web API を作っていきます。 intridea/grape · GitHub [2015/03/07] ファイルの配置を変更しました。変更点は GitHub をご確認ください。 準備 $ rails g model MessageBoard title:string body:text $ rails g model Comment message_board_id:integer body:text $ rake db:migrate $ rails g rspec:install # app/models/message_board.rb class MessageBoard < ActiveRecord::Base has_many :comments
Rails4から事実上標準になったっぽいJbuilderを使って、Grape+RailsなWebAPIのJSONフォーマットを柔軟に作ってみる。has_manyなどで深い階層のモデルを使ってAPIを作ると面倒くさいことが多いんだけど、Jbuilderならシンプルに書くことが出来る。 他のGemでActiveModel::Serializersっていうのもあったけど、こっちはモデルで出力フォーマットを定義していくタイプっぽくて、複雑なJSONフォーマットにしようとすると面倒。Viewで定義できるJbuilderの方が良さげ。ActiveModel::SerializersはモデルとAPIが1対1の時に良いのかも。 前提 Rails v4.1 grape v0.9.0 grape-jbuilder v0.2.0 Gemfile
Grape on Rails and Session fukayatsu Advent Calendar 2013 - 2日目 intridea/grapeでAPIをRailsにmountして使っていて、両方のCookieSessionを共有したかった。 最終的に以下のようなhelper methodを用意することに落ち着いた。 # routes.rb FooBar::Application.routes.draw do mount API => "/api" end # api.rb class API < Grape::API format :json helpers do def session env[Rack::Session::Abstract::ENV_SESSION_KEY] end end mount API::V1 end 余談 Session is responsib
Ruby Advent Calendar 2013 2日目 るびぃあどぅべんどぅくぁれんだー2013、2日目の記事となります。昨日はすうぱぁももんがさんのあくろばてぃっくな今年こそRubyを始めたいあなたに!ももんが流・最強のRuby学習法です。 概要 三回ほど手を変え品を変えWeb APIをRubyで作ってきました。ここではそこから学んだ今の私の全力全開、最高のWeb API開発についてコード例を交えてお話したいと思います。ここで言うWeb APIとはスマホアプリから使用する、サーバに置いてあるAPIをイメージして頂ければと思います。 ここではユーザが写真をサーバに保存できるAPIを想定し、応答のフォーマットはJSONとします。 使うもの rails 4 Rails 3ではなくRails 4を使うのは趣味です。 grape APIを書く際に非常に楽になります。APIで使用するURLとHT
RailsでAPIを雑に書いていたんだけど, コントローラとかをどう書くとエラー処理しやすくなっていいかなーと考えていて, 個人的に考えがまとまったのでブログ書いた. ※9/1に追記書いた. 良いエラー処理について 個人的にAPIを書く上で(API書くに限らない気はするけど)どういうふうにエラー処理を行うと良いかなーと考えてみると コントローラ内では基本的に, ある関数の処理が失敗して, 次の処理が行えない場合はすべて例外を投げる 例外は各々のコントローラ内で例外のキャッチは行わず, すべてApplicationControllerなど, 親コントローラ内の1メソッドで完結させる かなーと思う. APIのエラー処理は, Envelopeにステータスコードとエラーメッセージを書いて, APIのフォーマットを統一するほうがクライアントが作りやすそうだし, またこのように処理することで, エラー
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く