rack: como utilizar o poder dos middlewares em suas aplicações rails

21
Rack Rack Como utilizar o poder dos Middlewares em suas aplicações Rails

Upload: cleiton-francisco

Post on 13-May-2015

1.129 views

Category:

Technology


1 download

DESCRIPTION

Slides da palestra exibida no Rails for Kids 2009 - http://railsforkids.com

TRANSCRIPT

Page 1: Rack: como utilizar o poder dos Middlewares em suas aplicações Rails

RackRack

Como utilizar o poder dos Middlewares em suas aplicações Rails

Page 2: Rack: como utilizar o poder dos Middlewares em suas aplicações Rails

Rack é uma interface é uma interface básica entre básica entre servidores web e e frameworks ruby ruby

Page 3: Rack: como utilizar o poder dos Middlewares em suas aplicações Rails

Frameworks e Frameworks e ServidoresServidores

Page 4: Rack: como utilizar o poder dos Middlewares em suas aplicações Rails

Crie:

Aplicações que não Aplicações que não dependem de frameworkdependem de framework

Seu próprio frameworkSeu próprio framework

MiddlewaresMiddlewares

Page 5: Rack: como utilizar o poder dos Middlewares em suas aplicações Rails

Aplicações RackAplicações Rack

Page 6: Rack: como utilizar o poder dos Middlewares em suas aplicações Rails

Um simples objeto ruby

não precisa ser uma não precisa ser uma classeclasse

Método call

recebe um parametro, o recebe um parametro, o enviromentenviroment

retorna um array com três retorna um array com três valoresvalores

Page 7: Rack: como utilizar o poder dos Middlewares em suas aplicações Rails

env = { env = { “REQUEST_METHOD” => “GET”,

“QUERY_STRING” => “par=value”, ... }, },

return [ return [ 200, ,

{ { “Content-Type” => “text/plain” }, },

“Hello World!” ]]

Page 8: Rack: como utilizar o poder dos Middlewares em suas aplicações Rails
Page 9: Rack: como utilizar o poder dos Middlewares em suas aplicações Rails
Page 10: Rack: como utilizar o poder dos Middlewares em suas aplicações Rails

MiddlewaresMiddlewares

Page 11: Rack: como utilizar o poder dos Middlewares em suas aplicações Rails

são filtros que podem são filtros que podem ser usados para ser usados para interceptar um interceptar um request e e alterar o alterar o response

Page 12: Rack: como utilizar o poder dos Middlewares em suas aplicações Rails

HTTPHTTP

Middleware

Middleware

Aplicação

Page 13: Rack: como utilizar o poder dos Middlewares em suas aplicações Rails

Sinatra

Page 14: Rack: como utilizar o poder dos Middlewares em suas aplicações Rails

Sinatra

Rails

Page 15: Rack: como utilizar o poder dos Middlewares em suas aplicações Rails

$ rake middleware

use Rack::Lockuse Rack::Lock

use ActionController::Failsafeuse ActionController::Failsafe

use ActionController::Reloaderuse ActionController::Reloader

use ActionController::Session::CookieStore, ...use ActionController::Session::CookieStore, ...

use ActionController::ParamsParseruse ActionController::ParamsParser

use Rack::MethodOverrideuse Rack::MethodOverride

use Rack::Headuse Rack::Head

use use ActiveRecord::ConnectionAdapters::ConnectionActiveRecord::ConnectionAdapters::Connection......

use ActiveRecord::QueryCacheuse ActiveRecord::QueryCache

run ActionController::Dispatcher.newrun ActionController::Dispatcher.new

Page 16: Rack: como utilizar o poder dos Middlewares em suas aplicações Rails

Rack Contribhttp://github.com/rack/rack-contrib/

• Rack::ETagRack::ETag

• Rack::JSONPRack::JSONP

• Rack::LocaleRack::Locale

• Rack::MailExceptionsRack::MailExceptions

• Rack::StaticCacheRack::StaticCache

• Rack::TimeZoneRack::TimeZone

• Rack::CallbacksRack::Callbacks

• Rack::NotFoundRack::NotFound

• Rack::DeflectRack::Deflect

• Rack::ResponseCachRack::ResponseCachee

• Rack::RelativeRedireRack::RelativeRedirectct

• Rack::AcceptFormatRack::AcceptFormat

• Rack::CookiesRack::Cookies

• Outros...Outros...

Page 17: Rack: como utilizar o poder dos Middlewares em suas aplicações Rails

Rack::Cachehttp://tomayko.com/src/rack-cache/

Page 18: Rack: como utilizar o poder dos Middlewares em suas aplicações Rails

Rack::Cachehttp://tomayko.com/src/rack-cache/

Rack Javascript Minifyhttp://github.com/lucianopanaro/rack-javascript-

minifier/

Page 19: Rack: como utilizar o poder dos Middlewares em suas aplicações Rails

Rack::Cachehttp://tomayko.com/src/rack-cache/

Rack Javascript Minifyhttp://github.com/lucianopanaro/rack-javascript-

minifier/

Rack Roll http://github.com/semanticart/rack-roll/

Page 20: Rack: como utilizar o poder dos Middlewares em suas aplicações Rails

você pode criar seu pode criar seu próprio próprio middleware

Page 21: Rack: como utilizar o poder dos Middlewares em suas aplicações Rails

Obrigado!Obrigado!

@[email protected]

http://cleitonfco.com.br