Introduzione a Rack

di: Sandro Paganotti     15 Giugno 2010

Rack è una gemma Ruby nata cercando di dare una risposta al sentito bisogno di standardizzazione nelle comunicazioni tra i vari middleware che vogliono concorrere alla gestione della richieste e alla produzione delle risposte di una chiamata HTTP.

La strategia che implementa è incredibilmente semplice ed efficace: Rack consente di concatenare in modo sequenziale i vari middleware tra loro.

Ogni richiesta in arrivo dal webserver viene quindi strutturata all'interno di un oggetto specifico e passata al primo anello della catena il quale ha in carico la responsabilità di passarlo a sua volta al secondo anello, e così via.

Prima di ogni passaggio tale oggetto può essere chiaramente arricchito di informazioni prodotte dal middleware. Una volta completato il percorso fino alla fine della catena l'algoritmo inverte direzione e ripercorre tutti gli anelli in senso inverso dando la possibilità ad ognuno di essi di poter incidere a proprio piacimento nella creazione della risposta. Al termine di questo ulteriore passaggio la risposta viene passata al server per poi essere inviata al browser.

La comodità di questo semplice meccanismo è evidente: qualunque libreria che aspira a middleware, se scritta secondo alcune semplici linee guida, può divenire rack-enabled e quindi essere inserita all'interno di queste catene beneficiando della combinazione con gli altri anelli.

Questo articolo vuole offrire sia una panoramica sulla tecnica di creazione di un middleware rack-enabled sia un buono spunto su come creare ed utilizzare una catena di middleware utilizzando Rack; entrambi i temi verranno esposti nel seguito dell'articolo.

Guide Ruby

Guida ActiveSupport

Una panoramica sulle funzionalità più importanti di ActiveSupport:...

Guida Ruby On Rails 2

Scoprire le novità di Ruby on Rails 2, memorizzare i dati con...

Guida Ruby e il Web

Un percorso alla scoperta delle potenzialità offerte da Ruby nella...

Altre guide

Newsletter @Ruby

Ogni mercoledì, direttamente nella tua e-mail: articoli, guide e tutorial su Ruby e Ruby on Rails .

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Nessun corso previsto

Nessun corso previsto