SinatraでのRABLの使い方

2012-10-26#sinatra

RABLとは…

インストール

source :rubygems

gem 'sinatra'
gem 'rabl'
$ bundle install

基本

class MyApp < Sinatra::Base
  Rabl.register!

  set :rabl, :format => :json

  get '/' do
    get :rabl, :home
  end
end
node(:greeting) do
  'Hello, Sinatra with RABL!'
end
$ curl http://myapp.dev
{"greeting":"Hello, Sinatra with RABL!"}

レイアウト

{
  "status": <%= response.status %>,
  "result": <%= yield %>
}
get '/' do
  render :rabl, :home, :layout_engine => :erb
end
$ curl http://myapp.dev
{
  "status": 200,
  "result": {"greeting":"Hello, Sinatra with RABL!"}
}