The Grapes of Rapid (RubyConf 2010)
- 29. class MyAPI < Grape::API
prefix 'api'
get 'hello' do
{:hello => 'world'}
end
end
GET /hello
404 Not Found
GET /api/hello
{“hello”:”world”}
- 31. class MyAPI < Grape::API
prefix 'api'
version 'v1'
get 'hello' do
{:version => version}
end
end
GET /api/v1/hello
{“version”:”v1”}
GET /api/v2/hello
404 API Version
Not Found
- 33. class MyAPI < Grape::API
namespace :admin do
namespace 'metrics' do
get do
{:clicks => Click.count}
end
get '/:date' do
{:clicks => Click.for_date(params[:date]).count}
end
end
end
end
GET /admin/metrics
{“clicks”:235343}
GET /admin/metrics/2010-11-13
{“clicks”:5392}
- 36. class MyAPI < Grape::API
get 'open' do
"Hello."
end
namespace :admin do
http_basic do |u,p|
u == 'admin' && p == ENV['ADMIN_PASSWORD']
end
namespace 'metrics' do
get do
{:clicks => Click.count}
end
end
end
end
GET /admin/metrics
401 Unauthorized
admin:somepassword
GET /admin/metrics
{“clicks”:235343}
- 38. class MyAPI < Grape::API
helpers do
def current_user
User.find_by_token(params[:token])
end
end
get '/me' do
current_user
end
end
GET /me?token=12ab312df
{“screen_name”:”mbleigh”}
- 40. class MyAPI < Grape::API
helpers do
def current_user
@current_user ||= User.find_by_token(params[:token])
end
end
get '/me' do
error!("401 Unauthorized", 401) unless current_user
current_user
end
end
GET /me?token=invalidtoken
401 Unauthorized